-- GENERATED by C->Haskell Compiler, version 0.28.6 Switcheroo, 25 November 2017 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}
--
-- This module is auto-generated. Do not edit directly.
--

{-# LANGUAGE CPP #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
-- |
-- Module      : Foreign.CUDA.BLAS.Sparse.Convert
-- Copyright   : [2017] Trevor L. McDonell
-- License     : BSD3
--
-- Maintainer  : Trevor L. McDonell <tmcdonell@cse.unsw.edu.au>
-- Stability   : experimental
-- Portability : non-portable (GHC extensions)
--
-- For more information see the cuSPARSE function reference:
--
-- <http://docs.nvidia.com/cuda/cusparse/index.html#cusparse-format-conversion-reference>
--

module Foreign.CUDA.BLAS.Sparse.Convert (

  Direction(..),
  Action(..),
  Hybrid,
  HybridPartition(..),
  Info_csru2csr,
  Info_prune,
  sbsr2csr,
  dbsr2csr,
  cbsr2csr,
  zbsr2csr,
  sgebsr2gebsc_bufferSize,
  dgebsr2gebsc_bufferSize,
  cgebsr2gebsc_bufferSize,
  zgebsr2gebsc_bufferSize,
  sgebsr2gebsc,
  dgebsr2gebsc,
  cgebsr2gebsc,
  zgebsr2gebsc,
  sgebsr2gebsr_bufferSize,
  dgebsr2gebsr_bufferSize,
  cgebsr2gebsr_bufferSize,
  zgebsr2gebsr_bufferSize,
  sgebsr2gebsr,
  dgebsr2gebsr,
  cgebsr2gebsr,
  zgebsr2gebsr,
  xgebsr2gebsrNnz,
  sgebsr2csr,
  dgebsr2csr,
  cgebsr2csr,
  zgebsr2csr,
  scsr2gebsr_bufferSize,
  dcsr2gebsr_bufferSize,
  ccsr2gebsr_bufferSize,
  zcsr2gebsr_bufferSize,
  scsr2gebsr,
  dcsr2gebsr,
  ccsr2gebsr,
  zcsr2gebsr,
  xcsr2gebsrNnz,
  xcoo2csr,
  scsc2dense,
  dcsc2dense,
  ccsc2dense,
  zcsc2dense,
  scsc2hyb,
  dcsc2hyb,
  ccsc2hyb,
  zcsc2hyb,
  scsr2bsr,
  dcsr2bsr,
  ccsr2bsr,
  zcsr2bsr,
  xcsr2bsrNnz,
  xcsr2coo,
  scsr2csc,
  dcsr2csc,
  ccsr2csc,
  zcsr2csc,
  scsr2dense,
  dcsr2dense,
  ccsr2dense,
  zcsr2dense,
  scsr2hyb,
  dcsr2hyb,
  ccsr2hyb,
  zcsr2hyb,
  sdense2csc,
  ddense2csc,
  cdense2csc,
  zdense2csc,
  sdense2csr,
  ddense2csr,
  cdense2csr,
  zdense2csr,
  sdense2hyb,
  ddense2hyb,
  cdense2hyb,
  zdense2hyb,
  shyb2csc,
  dhyb2csc,
  chyb2csc,
  zhyb2csc,
  shyb2csr,
  dhyb2csr,
  chyb2csr,
  zhyb2csr,
  shyb2dense,
  dhyb2dense,
  chyb2dense,
  zhyb2dense,
  snnz,
  dnnz,
  cnnz,
  znnz,
  createIdentityPermutation,
  xcoosort_bufferSizeExt,
  xcoosortByRow,
  xcoosortByColumn,
  xcsrsort_bufferSizeExt,
  xcsrsort,
  xcscsort_bufferSizeExt,
  xcscsort,
  scsru2csr_bufferSizeExt,
  dcsru2csr_bufferSizeExt,
  ccsru2csr_bufferSizeExt,
  zcsru2csr_bufferSizeExt,
  scsru2csr,
  dcsru2csr,
  ccsru2csr,
  zcsru2csr,
  scsr2csru,
  dcsr2csru,
  ccsr2csru,
  zcsr2csru,
  csr2cscEx,
  scsr2csr_compress,
  dcsr2csr_compress,
  ccsr2csr_compress,
  zcsr2csr_compress,
  spruneDense2csr_bufferSizeExt,
  dpruneDense2csr_bufferSizeExt,
  hpruneDense2csr_bufferSizeExt,
  spruneDense2csrNnz,
  dpruneDense2csrNnz,
  hpruneDense2csrNnz,
  spruneDense2csr,
  dpruneDense2csr,
  hpruneDense2csr,
  spruneCsr2csr_bufferSizeExt,
  dpruneCsr2csr_bufferSizeExt,
  hpruneCsr2csr_bufferSizeExt,
  spruneCsr2csrNnz,
  dpruneCsr2csrNnz,
  hpruneCsr2csrNnz,
  spruneCsr2csr,
  dpruneCsr2csr,
  hpruneCsr2csr,
  spruneDense2csrByPercentage_bufferSizeExt,
  dpruneDense2csrByPercentage_bufferSizeExt,
  hpruneDense2csrByPercentage_bufferSizeExt,
  spruneDense2csrNnzByPercentage,
  dpruneDense2csrNnzByPercentage,
  hpruneDense2csrNnzByPercentage,
  spruneDense2csrByPercentage,
  dpruneDense2csrByPercentage,
  hpruneDense2csrByPercentage,
  spruneCsr2csrByPercentage_bufferSizeExt,
  dpruneCsr2csrByPercentage_bufferSizeExt,
  hpruneCsr2csrByPercentage_bufferSizeExt,
  spruneCsr2csrNnzByPercentage,
  dpruneCsr2csrNnzByPercentage,
  hpruneCsr2csrNnzByPercentage,
  spruneCsr2csrByPercentage,
  dpruneCsr2csrByPercentage,
  hpruneCsr2csrByPercentage,
  snnz_compress,
  dnnz_compress,
  cnnz_compress,
  znnz_compress,

) where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Ptr as C2HSImp



import Data.Complex
import Numeric.Half
import Foreign
import Foreign.C
import Foreign.Storable.Complex ()
import Foreign.CUDA.Ptr
import Foreign.CUDA.BLAS.Sparse.Analysis
import Foreign.CUDA.BLAS.Sparse.Context
import Foreign.CUDA.BLAS.Sparse.Error
import Foreign.CUDA.BLAS.Sparse.Internal.C2HS
import Foreign.CUDA.BLAS.Sparse.Internal.Types
import Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor
import Foreign.CUDA.BLAS.Sparse.Matrix.Hybrid



{-# LINE 203 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINE useDevP #-}
useDevP :: DevicePtr a -> Ptr b
useDevP = useDevicePtr . castDevPtr

{-# INLINE useHostP #-}
useHostP :: HostPtr a -> Ptr b
useHostP = useHostPtr . castHostPtr


{-# INLINEABLE sbsr2csr #-}
sbsr2csr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
sbsr2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  sbsr2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 215 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dbsr2csr #-}
dbsr2csr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
dbsr2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  dbsr2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 218 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE cbsr2csr #-}
cbsr2csr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
cbsr2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  cbsr2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 221 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zbsr2csr #-}
zbsr2csr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
zbsr2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  zbsr2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 224 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE sgebsr2gebsc_bufferSize #-}
sgebsr2gebsc_bufferSize :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> IO ((Int))
sgebsr2gebsc_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = fromIntegral a9} in
  alloca $ \a10' ->
  sgebsr2gebsc_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  peekIntConv  a10'>>= \a10'' ->
  return (a10'')

{-# LINE 227 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dgebsr2gebsc_bufferSize #-}
dgebsr2gebsc_bufferSize :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> IO ((Int))
dgebsr2gebsc_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = fromIntegral a9} in
  alloca $ \a10' ->
  dgebsr2gebsc_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  peekIntConv  a10'>>= \a10'' ->
  return (a10'')

{-# LINE 230 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE cgebsr2gebsc_bufferSize #-}
cgebsr2gebsc_bufferSize :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> IO ((Int))
cgebsr2gebsc_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = fromIntegral a9} in
  alloca $ \a10' ->
  cgebsr2gebsc_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  peekIntConv  a10'>>= \a10'' ->
  return (a10'')

{-# LINE 233 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zgebsr2gebsc_bufferSize #-}
zgebsr2gebsc_bufferSize :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> IO ((Int))
zgebsr2gebsc_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = fromIntegral a9} in
  alloca $ \a10' ->
  zgebsr2gebsc_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  peekIntConv  a10'>>= \a10'' ->
  return (a10'')

{-# LINE 236 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE sgebsr2gebsc #-}
sgebsr2gebsc :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Action) -> (IndexBase) -> (DevicePtr ()) -> IO ()
sgebsr2gebsc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = cFromEnum a13} in
  let {a14' = cFromEnum a14} in
  let {a15' = useDevP a15} in
  sgebsr2gebsc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 239 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dgebsr2gebsc #-}
dgebsr2gebsc :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Action) -> (IndexBase) -> (DevicePtr ()) -> IO ()
dgebsr2gebsc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = cFromEnum a13} in
  let {a14' = cFromEnum a14} in
  let {a15' = useDevP a15} in
  dgebsr2gebsc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 242 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE cgebsr2gebsc #-}
cgebsr2gebsc :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Action) -> (IndexBase) -> (DevicePtr ()) -> IO ()
cgebsr2gebsc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = cFromEnum a13} in
  let {a14' = cFromEnum a14} in
  let {a15' = useDevP a15} in
  cgebsr2gebsc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 245 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zgebsr2gebsc #-}
zgebsr2gebsc :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Action) -> (IndexBase) -> (DevicePtr ()) -> IO ()
zgebsr2gebsc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = cFromEnum a13} in
  let {a14' = cFromEnum a14} in
  let {a15' = useDevP a15} in
  zgebsr2gebsc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 248 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE sgebsr2gebsr_bufferSize #-}
sgebsr2gebsr_bufferSize :: (Handle) -> (Direction) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (Int) -> (Int) -> IO ((Int))
sgebsr2gebsr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useMatDescr a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = fromIntegral a12} in
  let {a13' = fromIntegral a13} in
  alloca $ \a14' ->
  sgebsr2gebsr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  peekIntConv  a14'>>= \a14'' ->
  return (a14'')

{-# LINE 251 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dgebsr2gebsr_bufferSize #-}
dgebsr2gebsr_bufferSize :: (Handle) -> (Direction) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (Int) -> (Int) -> IO ((Int))
dgebsr2gebsr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useMatDescr a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = fromIntegral a12} in
  let {a13' = fromIntegral a13} in
  alloca $ \a14' ->
  dgebsr2gebsr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  peekIntConv  a14'>>= \a14'' ->
  return (a14'')

{-# LINE 254 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE cgebsr2gebsr_bufferSize #-}
cgebsr2gebsr_bufferSize :: (Handle) -> (Direction) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (Int) -> (Int) -> IO ((Int))
cgebsr2gebsr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useMatDescr a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = fromIntegral a12} in
  let {a13' = fromIntegral a13} in
  alloca $ \a14' ->
  cgebsr2gebsr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  peekIntConv  a14'>>= \a14'' ->
  return (a14'')

{-# LINE 257 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zgebsr2gebsr_bufferSize #-}
zgebsr2gebsr_bufferSize :: (Handle) -> (Direction) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (Int) -> (Int) -> IO ((Int))
zgebsr2gebsr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useMatDescr a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = fromIntegral a12} in
  let {a13' = fromIntegral a13} in
  alloca $ \a14' ->
  zgebsr2gebsr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  peekIntConv  a14'>>= \a14'' ->
  return (a14'')

{-# LINE 260 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE sgebsr2gebsr #-}
sgebsr2gebsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr ()) -> IO ()
sgebsr2gebsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useMatDescr a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = useMatDescr a12} in
  let {a13' = useDevP a13} in
  let {a14' = useDevP a14} in
  let {a15' = useDevP a15} in
  let {a16' = fromIntegral a16} in
  let {a17' = fromIntegral a17} in
  let {a18' = useDevP a18} in
  sgebsr2gebsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' a16' a17' a18' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 263 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dgebsr2gebsr #-}
dgebsr2gebsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr ()) -> IO ()
dgebsr2gebsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useMatDescr a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = useMatDescr a12} in
  let {a13' = useDevP a13} in
  let {a14' = useDevP a14} in
  let {a15' = useDevP a15} in
  let {a16' = fromIntegral a16} in
  let {a17' = fromIntegral a17} in
  let {a18' = useDevP a18} in
  dgebsr2gebsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' a16' a17' a18' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 266 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE cgebsr2gebsr #-}
cgebsr2gebsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr ()) -> IO ()
cgebsr2gebsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useMatDescr a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = useMatDescr a12} in
  let {a13' = useDevP a13} in
  let {a14' = useDevP a14} in
  let {a15' = useDevP a15} in
  let {a16' = fromIntegral a16} in
  let {a17' = fromIntegral a17} in
  let {a18' = useDevP a18} in
  cgebsr2gebsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' a16' a17' a18' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 269 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zgebsr2gebsr #-}
zgebsr2gebsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr ()) -> IO ()
zgebsr2gebsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useMatDescr a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = useMatDescr a12} in
  let {a13' = useDevP a13} in
  let {a14' = useDevP a14} in
  let {a15' = useDevP a15} in
  let {a16' = fromIntegral a16} in
  let {a17' = fromIntegral a17} in
  let {a18' = useDevP a18} in
  zgebsr2gebsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' a16' a17' a18' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 272 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xgebsr2gebsrNnz #-}
xgebsr2gebsrNnz :: (Handle) -> (Direction) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Int) -> (Int) -> (Ptr Int32) -> (DevicePtr ()) -> IO ()
xgebsr2gebsrNnz a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useMatDescr a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = useMatDescr a11} in
  let {a12' = useDevP a12} in
  let {a13' = fromIntegral a13} in
  let {a14' = fromIntegral a14} in
  let {a15' = castPtr a15} in
  let {a16' = useDevP a16} in
  xgebsr2gebsrNnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' a16' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 275 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE sgebsr2csr #-}
sgebsr2csr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
sgebsr2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = useMatDescr a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useDevP a14} in
  sgebsr2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 278 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dgebsr2csr #-}
dgebsr2csr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
dgebsr2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = useMatDescr a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useDevP a14} in
  dgebsr2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 281 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE cgebsr2csr #-}
cgebsr2csr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
cgebsr2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = useMatDescr a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useDevP a14} in
  cgebsr2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 284 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zgebsr2csr #-}
zgebsr2csr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
zgebsr2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = useMatDescr a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useDevP a14} in
  zgebsr2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 287 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsr2gebsr_bufferSize #-}
scsr2gebsr_bufferSize :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> IO ((Int))
scsr2gebsr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = fromIntegral a10} in
  alloca $ \a11' ->
  scsr2gebsr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  peekIntConv  a11'>>= \a11'' ->
  return (a11'')

{-# LINE 290 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsr2gebsr_bufferSize #-}
dcsr2gebsr_bufferSize :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> IO ((Int))
dcsr2gebsr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = fromIntegral a10} in
  alloca $ \a11' ->
  dcsr2gebsr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  peekIntConv  a11'>>= \a11'' ->
  return (a11'')

{-# LINE 293 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsr2gebsr_bufferSize #-}
ccsr2gebsr_bufferSize :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> IO ((Int))
ccsr2gebsr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = fromIntegral a10} in
  alloca $ \a11' ->
  ccsr2gebsr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  peekIntConv  a11'>>= \a11'' ->
  return (a11'')

{-# LINE 296 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsr2gebsr_bufferSize #-}
zcsr2gebsr_bufferSize :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> IO ((Int))
zcsr2gebsr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = fromIntegral a10} in
  alloca $ \a11' ->
  zcsr2gebsr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  peekIntConv  a11'>>= \a11'' ->
  return (a11'')

{-# LINE 299 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsr2gebsr #-}
scsr2gebsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr ()) -> IO ()
scsr2gebsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useMatDescr a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = fromIntegral a13} in
  let {a14' = fromIntegral a14} in
  let {a15' = useDevP a15} in
  scsr2gebsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 302 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsr2gebsr #-}
dcsr2gebsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr ()) -> IO ()
dcsr2gebsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useMatDescr a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = fromIntegral a13} in
  let {a14' = fromIntegral a14} in
  let {a15' = useDevP a15} in
  dcsr2gebsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 305 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsr2gebsr #-}
ccsr2gebsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr ()) -> IO ()
ccsr2gebsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useMatDescr a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = fromIntegral a13} in
  let {a14' = fromIntegral a14} in
  let {a15' = useDevP a15} in
  ccsr2gebsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 308 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsr2gebsr #-}
zcsr2gebsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr ()) -> IO ()
zcsr2gebsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useMatDescr a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = fromIntegral a13} in
  let {a14' = fromIntegral a14} in
  let {a15' = useDevP a15} in
  zcsr2gebsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 311 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xcsr2gebsrNnz #-}
xcsr2gebsrNnz :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Int) -> (Int) -> (Ptr Int32) -> (DevicePtr ()) -> IO ()
xcsr2gebsrNnz a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useMatDescr a8} in
  let {a9' = useDevP a9} in
  let {a10' = fromIntegral a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = castPtr a12} in
  let {a13' = useDevP a13} in
  xcsr2gebsrNnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 314 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xcoo2csr #-}
xcoo2csr :: (Handle) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr Int32) -> (IndexBase) -> IO ()
xcoo2csr a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = useDevP a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = cFromEnum a6} in
  xcoo2csr'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 317 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsc2dense #-}
scsc2dense :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr Float) -> (Int) -> IO ()
scsc2dense a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  scsc2dense'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 320 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsc2dense #-}
dcsc2dense :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr Double) -> (Int) -> IO ()
dcsc2dense a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  dcsc2dense'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 323 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsc2dense #-}
ccsc2dense :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr (Complex Float)) -> (Int) -> IO ()
ccsc2dense a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  ccsc2dense'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 326 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsc2dense #-}
zcsc2dense :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr (Complex Double)) -> (Int) -> IO ()
zcsc2dense a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  zcsc2dense'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 329 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsc2hyb #-}
scsc2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
scsc2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  scsc2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 332 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsc2hyb #-}
dcsc2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
dcsc2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  dcsc2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 335 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsc2hyb #-}
ccsc2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
ccsc2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  ccsc2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 338 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsc2hyb #-}
zcsc2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
zcsc2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  zcsc2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 341 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsr2bsr #-}
scsr2bsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
scsr2bsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  scsr2bsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 344 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsr2bsr #-}
dcsr2bsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
dcsr2bsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  dcsr2bsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 347 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsr2bsr #-}
ccsr2bsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
ccsr2bsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  ccsr2bsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 350 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsr2bsr #-}
zcsr2bsr :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
zcsr2bsr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  zcsr2bsr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 353 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xcsr2bsrNnz #-}
xcsr2bsrNnz :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Ptr Int32) -> IO ()
xcsr2bsrNnz a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useMatDescr a9} in
  let {a10' = useDevP a10} in
  let {a11' = castPtr a11} in
  xcsr2bsrNnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 356 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xcsr2coo #-}
xcsr2coo :: (Handle) -> (DevicePtr Int32) -> (Int) -> (Int) -> (DevicePtr Int32) -> (IndexBase) -> IO ()
xcsr2coo a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = useDevP a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = cFromEnum a6} in
  xcsr2coo'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 359 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsr2csc #-}
scsr2csc :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Action) -> (IndexBase) -> IO ()
scsr2csc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = cFromEnum a11} in
  let {a12' = cFromEnum a12} in
  scsr2csc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 362 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsr2csc #-}
dcsr2csc :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Action) -> (IndexBase) -> IO ()
dcsr2csc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = cFromEnum a11} in
  let {a12' = cFromEnum a12} in
  dcsr2csc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 365 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsr2csc #-}
ccsr2csc :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Action) -> (IndexBase) -> IO ()
ccsr2csc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = cFromEnum a11} in
  let {a12' = cFromEnum a12} in
  ccsr2csc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 368 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsr2csc #-}
zcsr2csc :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Action) -> (IndexBase) -> IO ()
zcsr2csc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = cFromEnum a11} in
  let {a12' = cFromEnum a12} in
  zcsr2csc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 371 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsr2dense #-}
scsr2dense :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr Float) -> (Int) -> IO ()
scsr2dense a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  scsr2dense'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 374 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsr2dense #-}
dcsr2dense :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr Double) -> (Int) -> IO ()
dcsr2dense a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  dcsr2dense'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 377 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsr2dense #-}
ccsr2dense :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr (Complex Float)) -> (Int) -> IO ()
ccsr2dense a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  ccsr2dense'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 380 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsr2dense #-}
zcsr2dense :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr (Complex Double)) -> (Int) -> IO ()
zcsr2dense a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  zcsr2dense'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 383 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsr2hyb #-}
scsr2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
scsr2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  scsr2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 386 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsr2hyb #-}
dcsr2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
dcsr2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  dcsr2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 389 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsr2hyb #-}
ccsr2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
ccsr2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  ccsr2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 392 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsr2hyb #-}
zcsr2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
zcsr2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  zcsr2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 395 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE sdense2csc #-}
sdense2csc :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
sdense2csc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  sdense2csc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 398 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ddense2csc #-}
ddense2csc :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
ddense2csc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  ddense2csc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 401 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE cdense2csc #-}
cdense2csc :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
cdense2csc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  cdense2csc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 404 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zdense2csc #-}
zdense2csc :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
zdense2csc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  zdense2csc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 407 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE sdense2csr #-}
sdense2csr :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
sdense2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  sdense2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 410 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ddense2csr #-}
ddense2csr :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
ddense2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  ddense2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 413 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE cdense2csr #-}
cdense2csr :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
cdense2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  cdense2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 416 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zdense2csr #-}
zdense2csr :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
zdense2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  zdense2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 419 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE sdense2hyb #-}
sdense2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
sdense2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  sdense2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 422 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ddense2hyb #-}
ddense2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
ddense2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  ddense2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 425 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE cdense2hyb #-}
cdense2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
cdense2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  cdense2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 428 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zdense2hyb #-}
zdense2hyb :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> (Hybrid) -> (Int) -> (HybridPartition) -> IO ()
zdense2hyb a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useHYB a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = cFromEnum a10} in
  zdense2hyb'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 431 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE shyb2csc #-}
shyb2csc :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
shyb2csc a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  shyb2csc'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 434 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dhyb2csc #-}
dhyb2csc :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
dhyb2csc a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  dhyb2csc'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 437 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE chyb2csc #-}
chyb2csc :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
chyb2csc a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  chyb2csc'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 440 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zhyb2csc #-}
zhyb2csc :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
zhyb2csc a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  zhyb2csc'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 443 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE shyb2csr #-}
shyb2csr :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
shyb2csr a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  shyb2csr'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 446 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dhyb2csr #-}
dhyb2csr :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
dhyb2csr a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  dhyb2csr'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 449 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE chyb2csr #-}
chyb2csr :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
chyb2csr a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  chyb2csr'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 452 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zhyb2csr #-}
zhyb2csr :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
zhyb2csr a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  zhyb2csr'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 455 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE shyb2dense #-}
shyb2dense :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr Float) -> (Int) -> IO ()
shyb2dense a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  shyb2dense'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 458 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dhyb2dense #-}
dhyb2dense :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr Double) -> (Int) -> IO ()
dhyb2dense a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  dhyb2dense'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 461 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE chyb2dense #-}
chyb2dense :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr (Complex Float)) -> (Int) -> IO ()
chyb2dense a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  chyb2dense'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 464 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zhyb2dense #-}
zhyb2dense :: (Handle) -> (MatrixDescriptor) -> (Hybrid) -> (DevicePtr (Complex Double)) -> (Int) -> IO ()
zhyb2dense a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = useMatDescr a2} in
  let {a3' = useHYB a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  zhyb2dense'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 467 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE snnz #-}
snnz :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> (Ptr Int32) -> IO ()
snnz a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = fromIntegral a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  snnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 470 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dnnz #-}
dnnz :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> (Ptr Int32) -> IO ()
dnnz a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = fromIntegral a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  dnnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 473 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE cnnz #-}
cnnz :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> (Ptr Int32) -> IO ()
cnnz a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = fromIntegral a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  cnnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 476 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE znnz #-}
znnz :: (Handle) -> (Direction) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> (Ptr Int32) -> IO ()
znnz a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = fromIntegral a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  znnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 480 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE createIdentityPermutation #-}
createIdentityPermutation :: (Handle) -> (Int) -> (DevicePtr Int32) -> IO ()
createIdentityPermutation a1 a2 a3 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = useDevP a3} in
  createIdentityPermutation'_ a1' a2' a3' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 483 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xcoosort_bufferSizeExt #-}
xcoosort_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ((Int))
xcoosort_bufferSizeExt a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  alloca $ \a7' ->
  xcoosort_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' >>= \res ->
  checkStatus res >>
  peekIntConv  a7'>>= \a7'' ->
  return (a7'')

{-# LINE 486 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xcoosortByRow #-}
xcoosortByRow :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr ()) -> IO ()
xcoosortByRow a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  xcoosortByRow'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 489 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xcoosortByColumn #-}
xcoosortByColumn :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr ()) -> IO ()
xcoosortByColumn a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  xcoosortByColumn'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 492 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xcsrsort_bufferSizeExt #-}
xcsrsort_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ((Int))
xcsrsort_bufferSizeExt a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  alloca $ \a7' ->
  xcsrsort_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' >>= \res ->
  checkStatus res >>
  peekIntConv  a7'>>= \a7'' ->
  return (a7'')

{-# LINE 495 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xcsrsort #-}
xcsrsort :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr ()) -> IO ()
xcsrsort a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  xcsrsort'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 498 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xcscsort_bufferSizeExt #-}
xcscsort_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ((Int))
xcscsort_bufferSizeExt a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  alloca $ \a7' ->
  xcscsort_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' >>= \res ->
  checkStatus res >>
  peekIntConv  a7'>>= \a7'' ->
  return (a7'')

{-# LINE 501 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE xcscsort #-}
xcscsort :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr ()) -> IO ()
xcscsort a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  xcscsort'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 504 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsru2csr_bufferSizeExt #-}
scsru2csr_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> IO ((Int))
scsru2csr_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useInfo_csru2csr a8} in
  alloca $ \a9' ->
  scsru2csr_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  peekIntConv  a9'>>= \a9'' ->
  return (a9'')

{-# LINE 507 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsru2csr_bufferSizeExt #-}
dcsru2csr_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> IO ((Int))
dcsru2csr_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useInfo_csru2csr a8} in
  alloca $ \a9' ->
  dcsru2csr_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  peekIntConv  a9'>>= \a9'' ->
  return (a9'')

{-# LINE 510 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsru2csr_bufferSizeExt #-}
ccsru2csr_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> IO ((Int))
ccsru2csr_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useInfo_csru2csr a8} in
  alloca $ \a9' ->
  ccsru2csr_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  peekIntConv  a9'>>= \a9'' ->
  return (a9'')

{-# LINE 513 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsru2csr_bufferSizeExt #-}
zcsru2csr_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> IO ((Int))
zcsru2csr_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useInfo_csru2csr a8} in
  alloca $ \a9' ->
  zcsru2csr_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  peekIntConv  a9'>>= \a9'' ->
  return (a9'')

{-# LINE 516 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsru2csr #-}
scsru2csr :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> (DevicePtr ()) -> IO ()
scsru2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useInfo_csru2csr a9} in
  let {a10' = useDevP a10} in
  scsru2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 519 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsru2csr #-}
dcsru2csr :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> (DevicePtr ()) -> IO ()
dcsru2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useInfo_csru2csr a9} in
  let {a10' = useDevP a10} in
  dcsru2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 522 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsru2csr #-}
ccsru2csr :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> (DevicePtr ()) -> IO ()
ccsru2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useInfo_csru2csr a9} in
  let {a10' = useDevP a10} in
  ccsru2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 525 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsru2csr #-}
zcsru2csr :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> (DevicePtr ()) -> IO ()
zcsru2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useInfo_csru2csr a9} in
  let {a10' = useDevP a10} in
  zcsru2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 528 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsr2csru #-}
scsr2csru :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> (DevicePtr ()) -> IO ()
scsr2csru a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useInfo_csru2csr a9} in
  let {a10' = useDevP a10} in
  scsr2csru'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 531 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsr2csru #-}
dcsr2csru :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> (DevicePtr ()) -> IO ()
dcsr2csru a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useInfo_csru2csr a9} in
  let {a10' = useDevP a10} in
  dcsr2csru'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 534 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsr2csru #-}
ccsr2csru :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> (DevicePtr ()) -> IO ()
ccsr2csru a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useInfo_csru2csr a9} in
  let {a10' = useDevP a10} in
  ccsr2csru'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 537 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsr2csru #-}
zcsr2csru :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_csru2csr) -> (DevicePtr ()) -> IO ()
zcsr2csru a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useInfo_csru2csr a9} in
  let {a10' = useDevP a10} in
  zcsr2csru'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 603 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE csr2cscEx #-}
csr2cscEx :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr ()) -> (Type) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr ()) -> (Type) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Action) -> (IndexBase) -> (Type) -> IO ()
csr2cscEx a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = cFromEnum a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = cFromEnum a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = cFromEnum a13} in
  let {a14' = cFromEnum a14} in
  let {a15' = cFromEnum a15} in
  csr2cscEx'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 606 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE scsr2csr_compress #-}
scsr2csr_compress :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Float) -> IO ()
scsr2csr_compress a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = CFloat a13} in
  scsr2csr_compress'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 609 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dcsr2csr_compress #-}
dcsr2csr_compress :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Double) -> IO ()
dcsr2csr_compress a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = CDouble a13} in
  dcsr2csr_compress'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 612 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE ccsr2csr_compress #-}
ccsr2csr_compress :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (DevicePtr Int32) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> ((Complex Float)) -> IO ()
ccsr2csr_compress a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  withComplex a13 $ \a13' ->
  ccsr2csr_compress'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 615 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE zcsr2csr_compress #-}
zcsr2csr_compress :: (Handle) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Int) -> (DevicePtr Int32) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> ((Complex Double)) -> IO ()
zcsr2csr_compress a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useMatDescr a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  withComplex a13 $ \a13' ->
  zcsr2csr_compress'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 636 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneDense2csr_bufferSizeExt #-}
spruneDense2csr_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (Ptr Float) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ((Int))
spruneDense2csr_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = castPtr a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  alloca $ \a11' ->
  spruneDense2csr_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  peekIntConv  a11'>>= \a11'' ->
  return (a11'')

{-# LINE 639 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneDense2csr_bufferSizeExt #-}
dpruneDense2csr_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (Ptr Double) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ((Int))
dpruneDense2csr_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = castPtr a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  alloca $ \a11' ->
  dpruneDense2csr_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  peekIntConv  a11'>>= \a11'' ->
  return (a11'')

{-# LINE 642 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneDense2csr_bufferSizeExt #-}
hpruneDense2csr_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (DevicePtr Half) -> (Int) -> (Ptr Half) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ((Int))
hpruneDense2csr_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = castPtr a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  alloca $ \a11' ->
  hpruneDense2csr_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  peekIntConv  a11'>>= \a11'' ->
  return (a11'')

{-# LINE 645 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneDense2csrNnz #-}
spruneDense2csrNnz :: (Handle) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (Ptr Float) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Ptr Int32) -> (DevicePtr ()) -> IO ()
spruneDense2csrNnz a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = castPtr a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useDevP a10} in
  spruneDense2csrNnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 648 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneDense2csrNnz #-}
dpruneDense2csrNnz :: (Handle) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (Ptr Double) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Ptr Int32) -> (DevicePtr ()) -> IO ()
dpruneDense2csrNnz a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = castPtr a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useDevP a10} in
  dpruneDense2csrNnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 651 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneDense2csrNnz #-}
hpruneDense2csrNnz :: (Handle) -> (Int) -> (Int) -> (DevicePtr Half) -> (Int) -> (Ptr Half) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Ptr Int32) -> (DevicePtr ()) -> IO ()
hpruneDense2csrNnz a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = castPtr a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useDevP a10} in
  hpruneDense2csrNnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 654 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneDense2csr #-}
spruneDense2csr :: (Handle) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (Ptr Float) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr ()) -> IO ()
spruneDense2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = castPtr a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  spruneDense2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 657 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneDense2csr #-}
dpruneDense2csr :: (Handle) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (Ptr Double) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr ()) -> IO ()
dpruneDense2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = castPtr a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  dpruneDense2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 660 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneDense2csr #-}
hpruneDense2csr :: (Handle) -> (Int) -> (Int) -> (DevicePtr Half) -> (Int) -> (Ptr Half) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr ()) -> IO ()
hpruneDense2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = castPtr a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useDevP a11} in
  hpruneDense2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 663 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneCsr2csr_bufferSizeExt #-}
spruneCsr2csr_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Float) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ((Int))
spruneCsr2csr_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  alloca $ \a14' ->
  spruneCsr2csr_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  peekIntConv  a14'>>= \a14'' ->
  return (a14'')

{-# LINE 666 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneCsr2csr_bufferSizeExt #-}
dpruneCsr2csr_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Double) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ((Int))
dpruneCsr2csr_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  alloca $ \a14' ->
  dpruneCsr2csr_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  peekIntConv  a14'>>= \a14'' ->
  return (a14'')

{-# LINE 669 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneCsr2csr_bufferSizeExt #-}
hpruneCsr2csr_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Half) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ((Int))
hpruneCsr2csr_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  alloca $ \a14' ->
  hpruneCsr2csr_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  peekIntConv  a14'>>= \a14'' ->
  return (a14'')

{-# LINE 672 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneCsr2csrNnz #-}
spruneCsr2csrNnz :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Float) -> (MatrixDescriptor) -> (DevicePtr Float) -> (Ptr Int32) -> (DevicePtr ()) -> IO ()
spruneCsr2csrNnz a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = castPtr a12} in
  let {a13' = useDevP a13} in
  spruneCsr2csrNnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 675 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneCsr2csrNnz #-}
dpruneCsr2csrNnz :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Double) -> (MatrixDescriptor) -> (DevicePtr Double) -> (Ptr Int32) -> (DevicePtr ()) -> IO ()
dpruneCsr2csrNnz a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = castPtr a12} in
  let {a13' = useDevP a13} in
  dpruneCsr2csrNnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 678 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneCsr2csrNnz #-}
hpruneCsr2csrNnz :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Half) -> (MatrixDescriptor) -> (DevicePtr Half) -> (Ptr Int32) -> (DevicePtr ()) -> IO ()
hpruneCsr2csrNnz a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = castPtr a12} in
  let {a13' = useDevP a13} in
  hpruneCsr2csrNnz'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 681 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneCsr2csr #-}
spruneCsr2csr :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Float) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr ()) -> IO ()
spruneCsr2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useDevP a14} in
  spruneCsr2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 684 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneCsr2csr #-}
dpruneCsr2csr :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Double) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr ()) -> IO ()
dpruneCsr2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useDevP a14} in
  dpruneCsr2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 687 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneCsr2csr #-}
hpruneCsr2csr :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Half) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (DevicePtr ()) -> IO ()
hpruneCsr2csr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useDevP a14} in
  hpruneCsr2csr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 690 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneDense2csrByPercentage_bufferSizeExt #-}
spruneDense2csrByPercentage_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> IO ((Int))
spruneDense2csrByPercentage_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = CFloat a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useInfo_prune a11} in
  alloca $ \a12' ->
  spruneDense2csrByPercentage_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  peekIntConv  a12'>>= \a12'' ->
  return (a12'')

{-# LINE 693 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneDense2csrByPercentage_bufferSizeExt #-}
dpruneDense2csrByPercentage_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> IO ((Int))
dpruneDense2csrByPercentage_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = CFloat a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useInfo_prune a11} in
  alloca $ \a12' ->
  dpruneDense2csrByPercentage_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  peekIntConv  a12'>>= \a12'' ->
  return (a12'')

{-# LINE 696 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneDense2csrByPercentage_bufferSizeExt #-}
hpruneDense2csrByPercentage_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (DevicePtr Half) -> (Int) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> IO ((Int))
hpruneDense2csrByPercentage_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = CFloat a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useInfo_prune a11} in
  alloca $ \a12' ->
  hpruneDense2csrByPercentage_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  peekIntConv  a12'>>= \a12'' ->
  return (a12'')

{-# LINE 699 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneDense2csrNnzByPercentage #-}
spruneDense2csrNnzByPercentage :: (Handle) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Ptr Int32) -> (Info_prune) -> (DevicePtr ()) -> IO ()
spruneDense2csrNnzByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = CFloat a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useInfo_prune a10} in
  let {a11' = useDevP a11} in
  spruneDense2csrNnzByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 702 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneDense2csrNnzByPercentage #-}
dpruneDense2csrNnzByPercentage :: (Handle) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Ptr Int32) -> (Info_prune) -> (DevicePtr ()) -> IO ()
dpruneDense2csrNnzByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = CFloat a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useInfo_prune a10} in
  let {a11' = useDevP a11} in
  dpruneDense2csrNnzByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 705 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneDense2csrNnzByPercentage #-}
hpruneDense2csrNnzByPercentage :: (Handle) -> (Int) -> (Int) -> (DevicePtr Half) -> (Int) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Ptr Int32) -> (Info_prune) -> (DevicePtr ()) -> IO ()
hpruneDense2csrNnzByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = CFloat a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = castPtr a9} in
  let {a10' = useInfo_prune a10} in
  let {a11' = useDevP a11} in
  hpruneDense2csrNnzByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 708 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneDense2csrByPercentage #-}
spruneDense2csrByPercentage :: (Handle) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> (DevicePtr ()) -> IO ()
spruneDense2csrByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = CFloat a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useInfo_prune a11} in
  let {a12' = useDevP a12} in
  spruneDense2csrByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 711 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneDense2csrByPercentage #-}
dpruneDense2csrByPercentage :: (Handle) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> (DevicePtr ()) -> IO ()
dpruneDense2csrByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = CFloat a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useInfo_prune a11} in
  let {a12' = useDevP a12} in
  dpruneDense2csrByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 714 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneDense2csrByPercentage #-}
hpruneDense2csrByPercentage :: (Handle) -> (Int) -> (Int) -> (DevicePtr Half) -> (Int) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> (DevicePtr ()) -> IO ()
hpruneDense2csrByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = CFloat a6} in
  let {a7' = useMatDescr a7} in
  let {a8' = useDevP a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = useInfo_prune a11} in
  let {a12' = useDevP a12} in
  hpruneDense2csrByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 717 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneCsr2csrByPercentage_bufferSizeExt #-}
spruneCsr2csrByPercentage_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> IO ((Int))
spruneCsr2csrByPercentage_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = CFloat a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useInfo_prune a14} in
  alloca $ \a15' ->
  spruneCsr2csrByPercentage_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  peekIntConv  a15'>>= \a15'' ->
  return (a15'')

{-# LINE 720 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneCsr2csrByPercentage_bufferSizeExt #-}
dpruneCsr2csrByPercentage_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> IO ((Int))
dpruneCsr2csrByPercentage_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = CFloat a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useInfo_prune a14} in
  alloca $ \a15' ->
  dpruneCsr2csrByPercentage_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  peekIntConv  a15'>>= \a15'' ->
  return (a15'')

{-# LINE 723 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneCsr2csrByPercentage_bufferSizeExt #-}
hpruneCsr2csrByPercentage_bufferSizeExt :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> IO ((Int))
hpruneCsr2csrByPercentage_bufferSizeExt a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = CFloat a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useInfo_prune a14} in
  alloca $ \a15' ->
  hpruneCsr2csrByPercentage_bufferSizeExt'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  peekIntConv  a15'>>= \a15'' ->
  return (a15'')

{-# LINE 726 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneCsr2csrNnzByPercentage #-}
spruneCsr2csrNnzByPercentage :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Ptr Int) -> (Info_prune) -> (DevicePtr ()) -> IO ()
spruneCsr2csrNnzByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = CFloat a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = castPtr a12} in
  let {a13' = useInfo_prune a13} in
  let {a14' = useDevP a14} in
  spruneCsr2csrNnzByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 729 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneCsr2csrNnzByPercentage #-}
dpruneCsr2csrNnzByPercentage :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Ptr Int) -> (Info_prune) -> (DevicePtr ()) -> IO ()
dpruneCsr2csrNnzByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = CFloat a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = castPtr a12} in
  let {a13' = useInfo_prune a13} in
  let {a14' = useDevP a14} in
  dpruneCsr2csrNnzByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 732 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneCsr2csrNnzByPercentage #-}
hpruneCsr2csrNnzByPercentage :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Int32) -> (Ptr Int) -> (Info_prune) -> (DevicePtr ()) -> IO ()
hpruneCsr2csrNnzByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = CFloat a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = castPtr a12} in
  let {a13' = useInfo_prune a13} in
  let {a14' = useDevP a14} in
  hpruneCsr2csrNnzByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 735 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE spruneCsr2csrByPercentage #-}
spruneCsr2csrByPercentage :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> (DevicePtr ()) -> IO ()
spruneCsr2csrByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = CFloat a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useInfo_prune a14} in
  let {a15' = useDevP a15} in
  spruneCsr2csrByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 738 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dpruneCsr2csrByPercentage #-}
dpruneCsr2csrByPercentage :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> (DevicePtr ()) -> IO ()
dpruneCsr2csrByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = CFloat a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useInfo_prune a14} in
  let {a15' = useDevP a15} in
  dpruneCsr2csrByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 741 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE hpruneCsr2csrByPercentage #-}
hpruneCsr2csrByPercentage :: (Handle) -> (Int) -> (Int) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Float) -> (MatrixDescriptor) -> (DevicePtr Half) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Info_prune) -> (DevicePtr ()) -> IO ()
hpruneCsr2csrByPercentage a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useMatDescr a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = CFloat a9} in
  let {a10' = useMatDescr a10} in
  let {a11' = useDevP a11} in
  let {a12' = useDevP a12} in
  let {a13' = useDevP a13} in
  let {a14' = useInfo_prune a14} in
  let {a15' = useDevP a15} in
  hpruneCsr2csrByPercentage'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' a15' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 744 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE snnz_compress #-}
snnz_compress :: (Handle) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Int32) -> (Float) -> IO ()
snnz_compress a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = useMatDescr a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = castPtr a7} in
  let {a8' = CFloat a8} in
  snnz_compress'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 747 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE dnnz_compress #-}
dnnz_compress :: (Handle) -> (Int) -> (MatrixDescriptor) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Int32) -> (Double) -> IO ()
dnnz_compress a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = useMatDescr a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = castPtr a7} in
  let {a8' = CDouble a8} in
  dnnz_compress'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 750 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE cnnz_compress #-}
cnnz_compress :: (Handle) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Int32) -> ((Complex Float)) -> IO ()
cnnz_compress a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = useMatDescr a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = castPtr a7} in
  withComplex a8 $ \a8' ->
  cnnz_compress'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 753 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


{-# INLINEABLE znnz_compress #-}
znnz_compress :: (Handle) -> (Int) -> (MatrixDescriptor) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> (Ptr Int32) -> ((Complex Double)) -> IO ()
znnz_compress a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = useMatDescr a3} in
  let {a4' = useDevP a4} in
  let {a5' = useDevP a5} in
  let {a6' = useDevP a6} in
  let {a7' = castPtr a7} in
  withComplex a8 $ \a8' ->
  znnz_compress'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 878 "./Foreign/CUDA/BLAS/Sparse/Convert.chs" #-}


foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSbsr2csr"
  sbsr2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDbsr2csr"
  dbsr2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCbsr2csr"
  cbsr2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZbsr2csr"
  zbsr2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSgebsr2gebsc_bufferSize"
  sgebsr2gebsc_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDgebsr2gebsc_bufferSize"
  dgebsr2gebsc_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCgebsr2gebsc_bufferSize"
  cgebsr2gebsc_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZgebsr2gebsc_bufferSize"
  zgebsr2gebsc_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSgebsr2gebsc"
  sgebsr2gebsc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDgebsr2gebsc"
  dgebsr2gebsc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCgebsr2gebsc"
  cgebsr2gebsc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZgebsr2gebsc"
  zgebsr2gebsc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSgebsr2gebsr_bufferSize"
  sgebsr2gebsr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDgebsr2gebsr_bufferSize"
  dgebsr2gebsr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCgebsr2gebsr_bufferSize"
  cgebsr2gebsr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZgebsr2gebsr_bufferSize"
  zgebsr2gebsr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSgebsr2gebsr"
  sgebsr2gebsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDgebsr2gebsr"
  dgebsr2gebsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCgebsr2gebsr"
  cgebsr2gebsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZgebsr2gebsr"
  zgebsr2gebsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXgebsr2gebsrNnz"
  xgebsr2gebsrNnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSgebsr2csr"
  sgebsr2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDgebsr2csr"
  dgebsr2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCgebsr2csr"
  cgebsr2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZgebsr2csr"
  zgebsr2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsr2gebsr_bufferSize"
  scsr2gebsr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsr2gebsr_bufferSize"
  dcsr2gebsr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsr2gebsr_bufferSize"
  ccsr2gebsr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsr2gebsr_bufferSize"
  zcsr2gebsr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsr2gebsr"
  scsr2gebsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsr2gebsr"
  dcsr2gebsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsr2gebsr"
  ccsr2gebsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsr2gebsr"
  zcsr2gebsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXcsr2gebsrNnz"
  xcsr2gebsrNnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXcoo2csr"
  xcoo2csr'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsc2dense"
  scsc2dense'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsc2dense"
  dcsc2dense'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsc2dense"
  ccsc2dense'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsc2dense"
  zcsc2dense'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsc2hyb"
  scsc2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsc2hyb"
  dcsc2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsc2hyb"
  ccsc2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsc2hyb"
  zcsc2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsr2bsr"
  scsr2bsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsr2bsr"
  dcsr2bsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsr2bsr"
  ccsr2bsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsr2bsr"
  zcsr2bsr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXcsr2bsrNnz"
  xcsr2bsrNnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXcsr2coo"
  xcsr2coo'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsr2csc"
  scsr2csc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsr2csc"
  dcsr2csc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsr2csc"
  ccsr2csc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsr2csc"
  zcsr2csc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsr2dense"
  scsr2dense'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsr2dense"
  dcsr2dense'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsr2dense"
  ccsr2dense'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsr2dense"
  zcsr2dense'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsr2hyb"
  scsr2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsr2hyb"
  dcsr2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsr2hyb"
  ccsr2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsr2hyb"
  zcsr2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSdense2csc"
  sdense2csc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDdense2csc"
  ddense2csc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCdense2csc"
  cdense2csc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZdense2csc"
  zdense2csc'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSdense2csr"
  sdense2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDdense2csr"
  ddense2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCdense2csr"
  cdense2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZdense2csr"
  zdense2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSdense2hyb"
  sdense2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDdense2hyb"
  ddense2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCdense2hyb"
  cdense2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZdense2hyb"
  zdense2hyb'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseShyb2csc"
  shyb2csc'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDhyb2csc"
  dhyb2csc'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseChyb2csc"
  chyb2csc'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZhyb2csc"
  zhyb2csc'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseShyb2csr"
  shyb2csr'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDhyb2csr"
  dhyb2csr'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseChyb2csr"
  chyb2csr'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZhyb2csr"
  zhyb2csr'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseShyb2dense"
  shyb2dense'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDhyb2dense"
  dhyb2dense'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseChyb2dense"
  chyb2dense'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZhyb2dense"
  zhyb2dense'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSnnz"
  snnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDnnz"
  dnnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCnnz"
  cnnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZnnz"
  znnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCreateIdentityPermutation"
  createIdentityPermutation'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXcoosort_bufferSizeExt"
  xcoosort_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXcoosortByRow"
  xcoosortByRow'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXcoosortByColumn"
  xcoosortByColumn'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXcsrsort_bufferSizeExt"
  xcsrsort_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXcsrsort"
  xcsrsort'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXcscsort_bufferSizeExt"
  xcscsort_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseXcscsort"
  xcscsort'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsru2csr_bufferSizeExt"
  scsru2csr_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsru2csr_bufferSizeExt"
  dcsru2csr_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsru2csr_bufferSizeExt"
  ccsru2csr_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsru2csr_bufferSizeExt"
  zcsru2csr_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsru2csr"
  scsru2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsru2csr"
  dcsru2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsru2csr"
  ccsru2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsru2csr"
  zcsru2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsr2csru"
  scsr2csru'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsr2csru"
  dcsr2csru'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsr2csru"
  ccsr2csru'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsr2csru"
  zcsr2csru'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCsr2cscEx"
  csr2cscEx'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseScsr2csr_compress"
  scsr2csr_compress'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDcsr2csr_compress"
  dcsr2csr_compress'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CDouble -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCcsr2csr_compress"
  ccsr2csr_compress'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZcsr2csr_compress"
  zcsr2csr_compress'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneDense2csr_bufferSizeExt"
  spruneDense2csr_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneDense2csr_bufferSizeExt"
  dpruneDense2csr_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneDense2csr_bufferSizeExt"
  hpruneDense2csr_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneDense2csrNnz"
  spruneDense2csrNnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneDense2csrNnz"
  dpruneDense2csrNnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneDense2csrNnz"
  hpruneDense2csrNnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneDense2csr"
  spruneDense2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneDense2csr"
  dpruneDense2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneDense2csr"
  hpruneDense2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneCsr2csr_bufferSizeExt"
  spruneCsr2csr_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneCsr2csr_bufferSizeExt"
  dpruneCsr2csr_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneCsr2csr_bufferSizeExt"
  hpruneCsr2csr_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneCsr2csrNnz"
  spruneCsr2csrNnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneCsr2csrNnz"
  dpruneCsr2csrNnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneCsr2csrNnz"
  hpruneCsr2csrNnz'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneCsr2csr"
  spruneCsr2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneCsr2csr"
  dpruneCsr2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneCsr2csr"
  hpruneCsr2csr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneDense2csrByPercentage_bufferSizeExt"
  spruneDense2csrByPercentage_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneDense2csrByPercentage_bufferSizeExt"
  dpruneDense2csrByPercentage_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneDense2csrByPercentage_bufferSizeExt"
  hpruneDense2csrByPercentage_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneDense2csrNnzByPercentage"
  spruneDense2csrNnzByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneDense2csrNnzByPercentage"
  dpruneDense2csrNnzByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneDense2csrNnzByPercentage"
  hpruneDense2csrNnzByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneDense2csrByPercentage"
  spruneDense2csrByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneDense2csrByPercentage"
  dpruneDense2csrByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneDense2csrByPercentage"
  hpruneDense2csrByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneCsr2csrByPercentage_bufferSizeExt"
  spruneCsr2csrByPercentage_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneCsr2csrByPercentage_bufferSizeExt"
  dpruneCsr2csrByPercentage_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneCsr2csrByPercentage_bufferSizeExt"
  hpruneCsr2csrByPercentage_bufferSizeExt'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneCsr2csrNnzByPercentage"
  spruneCsr2csrNnzByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneCsr2csrNnzByPercentage"
  dpruneCsr2csrNnzByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneCsr2csrNnzByPercentage"
  hpruneCsr2csrNnzByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSpruneCsr2csrByPercentage"
  spruneCsr2csrByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDpruneCsr2csrByPercentage"
  dpruneCsr2csrByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseHpruneCsr2csrByPercentage"
  hpruneCsr2csrByPercentage'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseSnnz_compress"
  snnz_compress'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseDnnz_compress"
  dnnz_compress'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (C2HSImp.CDouble -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseCnnz_compress"
  cnnz_compress'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Convert.chs.h cusparseZnnz_compress"
  znnz_compress'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))))))))