-- GENERATED by C->Haskell Compiler, version 0.28.2 Switcheroo, 1 April 2016 (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,
  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,

) 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 162 "./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 174 "./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 177 "./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 180 "./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 183 "./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 186 "./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 189 "./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 192 "./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 195 "./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 198 "./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 201 "./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 204 "./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 207 "./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 210 "./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 213 "./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 216 "./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 219 "./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 222 "./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 225 "./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 228 "./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 231 "./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 234 "./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 237 "./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 240 "./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 243 "./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 246 "./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 249 "./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 252 "./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 255 "./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 258 "./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 261 "./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 264 "./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 267 "./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 270 "./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 273 "./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 276 "./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 279 "./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 282 "./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 285 "./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 288 "./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 291 "./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 294 "./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 297 "./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 300 "./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 303 "./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 306 "./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 309 "./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 312 "./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 315 "./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 318 "./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 321 "./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 324 "./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 327 "./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 330 "./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 333 "./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 336 "./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 339 "./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 342 "./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 345 "./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 348 "./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 351 "./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 354 "./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 357 "./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 360 "./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 363 "./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 366 "./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 369 "./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 372 "./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 375 "./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 378 "./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 381 "./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 384 "./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 387 "./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 390 "./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 393 "./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 396 "./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 399 "./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 402 "./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 405 "./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 408 "./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 411 "./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 414 "./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 417 "./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 420 "./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 423 "./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 426 "./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 429 "./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 432 "./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 435 "./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 439 "./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 442 "./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 445 "./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 448 "./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 451 "./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 454 "./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 457 "./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 460 "./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 463 "./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 466 "./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 469 "./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 472 "./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 475 "./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 478 "./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 481 "./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 484 "./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 487 "./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 490 "./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 493 "./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 496 "./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 562 "./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 565 "./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 568 "./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 571 "./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 574 "./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 594 "./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))))))))))))))