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


{-# LINE 1 "./Foreign/CUDA/BLAS/Sparse/Level1.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.Level1
-- 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 Level-1 function reference:
--
-- <http://docs.nvidia.com/cuda/cusparse/index.html#cusparse-level-1-function-reference>
--

module Foreign.CUDA.BLAS.Sparse.Level1 (

  IndexBase(..),
  saxpyi,
  daxpyi,
  caxpyi,
  zaxpyi,
  sdoti,
  ddoti,
  cdoti,
  zdoti,
  cdotci,
  zdotci,
  sgthr,
  dgthr,
  cgthr,
  zgthr,
  sgthrz,
  dgthrz,
  cgthrz,
  zgthrz,
  sroti,
  droti,
  ssctr,
  dsctr,
  csctr,
  zsctr,

) 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 68 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

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


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

{-# LINE 80 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 83 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 86 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 89 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 92 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 95 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 98 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 101 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 104 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 107 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 110 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 113 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 116 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 119 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 122 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 125 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 128 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 131 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 134 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 137 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 140 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 143 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 146 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

{-# LINE 149 "./Foreign/CUDA/BLAS/Sparse/Level1.chs" #-}


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

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

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Level1.chs.h cusparseCaxpyi"
  caxpyi'_ :: ((C2HSImp.Ptr ()) -> (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/Level1.chs.h cusparseZaxpyi"
  zaxpyi'_ :: ((C2HSImp.Ptr ()) -> (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/Level1.chs.h cusparseSdoti"
  sdoti'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))))))

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

foreign import ccall unsafe "Foreign/CUDA/BLAS/Sparse/Level1.chs.h cusparseCsctr"
  csctr'_ :: ((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/Level1.chs.h cusparseZsctr"
  zsctr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))))