-- 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/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.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 cuBLAS Level-1 function reference:
--
-- <http://docs.nvidia.com/cuda/cublas/index.html#cublas-level-1-function-reference>
--

module Foreign.CUDA.BLAS.Level1 (

  isamax,
  idamax,
  icamax,
  izamax,
  isamin,
  idamin,
  icamin,
  izamin,
  sasum,
  dasum,
  scasum,
  dzasum,
  saxpy,
  daxpy,
  caxpy,
  zaxpy,
  scopy,
  dcopy,
  ccopy,
  zcopy,
  sdot,
  ddot,
  cdotu,
  zdotu,
  cdotc,
  zdotc,
  snrm2,
  dnrm2,
  scnrm2,
  dznrm2,
  srot,
  drot,
  crot,
  csrot,
  zrot,
  zdrot,
  srotg,
  drotg,
  crotg,
  zrotg,
  srotm,
  drotm,
  srotmg,
  drotmg,
  sscal,
  dscal,
  cscal,
  csscal,
  zscal,
  zdscal,
  sswap,
  dswap,
  cswap,
  zswap,

) 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.Error
import Foreign.CUDA.BLAS.Internal.C2HS
import Foreign.CUDA.BLAS.Internal.Types



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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


{-# INLINEABLE srot #-}
srot :: (Handle) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Float) -> (Int) -> (Ptr Float) -> (Ptr Float) -> IO ((()))
srot 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' = fromIntegral a4} in 
  let {a5' = useDevP a5} in 
  let {a6' = fromIntegral a6} in 
  let {a7' = castPtr a7} in 
  let {a8' = castPtr a8} in 
  srot'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


{-# INLINEABLE drot #-}
drot :: (Handle) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Double) -> (Int) -> (Ptr Double) -> (Ptr Double) -> IO ((()))
drot 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' = fromIntegral a4} in 
  let {a5' = useDevP a5} in 
  let {a6' = fromIntegral a6} in 
  let {a7' = castPtr a7} in 
  let {a8' = castPtr a8} in 
  drot'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


{-# INLINEABLE crot #-}
crot :: (Handle) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Ptr (Complex Float)) -> IO ((()))
crot 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' = fromIntegral a4} in 
  let {a5' = useDevP a5} in 
  let {a6' = fromIntegral a6} in 
  let {a7' = castPtr a7} in 
  let {a8' = castPtr a8} in 
  crot'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


{-# INLINEABLE csrot #-}
csrot :: (Handle) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (Ptr Float) -> (Ptr Float) -> IO ((()))
csrot 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' = fromIntegral a4} in 
  let {a5' = useDevP a5} in 
  let {a6' = fromIntegral a6} in 
  let {a7' = castPtr a7} in 
  let {a8' = castPtr a8} in 
  csrot'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


{-# INLINEABLE zrot #-}
zrot :: (Handle) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Ptr (Complex Double)) -> IO ((()))
zrot 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' = fromIntegral a4} in 
  let {a5' = useDevP a5} in 
  let {a6' = fromIntegral a6} in 
  let {a7' = castPtr a7} in 
  let {a8' = castPtr a8} in 
  zrot'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


{-# INLINEABLE zdrot #-}
zdrot :: (Handle) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (Ptr Double) -> (Ptr Double) -> IO ((()))
zdrot 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' = fromIntegral a4} in 
  let {a5' = useDevP a5} in 
  let {a6' = fromIntegral a6} in 
  let {a7' = castPtr a7} in 
  let {a8' = castPtr a8} in 
  zdrot'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


{-# INLINEABLE srotg #-}
srotg :: (Handle) -> (Ptr Float) -> (Ptr Float) -> (Ptr Float) -> (Ptr Float) -> IO ((()))
srotg a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castPtr a3} in 
  let {a4' = castPtr a4} in 
  let {a5' = castPtr a5} in 
  srotg'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


{-# INLINEABLE drotg #-}
drotg :: (Handle) -> (Ptr Double) -> (Ptr Double) -> (Ptr Double) -> (Ptr Double) -> IO ((()))
drotg a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castPtr a3} in 
  let {a4' = castPtr a4} in 
  let {a5' = castPtr a5} in 
  drotg'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


{-# INLINEABLE crotg #-}
crotg :: (Handle) -> (Ptr (Complex Float)) -> (Ptr (Complex Float)) -> (Ptr (Complex Float)) -> (Ptr (Complex Float)) -> IO ((()))
crotg a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castPtr a3} in 
  let {a4' = castPtr a4} in 
  let {a5' = castPtr a5} in 
  crotg'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


{-# INLINEABLE zrotg #-}
zrotg :: (Handle) -> (Ptr (Complex Double)) -> (Ptr (Complex Double)) -> (Ptr (Complex Double)) -> (Ptr (Complex Double)) -> IO ((()))
zrotg a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castPtr a3} in 
  let {a4' = castPtr a4} in 
  let {a5' = castPtr a5} in 
  zrotg'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


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

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


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

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


{-# INLINEABLE srotmg #-}
srotmg :: (Handle) -> (Ptr Float) -> (Ptr Float) -> (Ptr Float) -> (Ptr Float) -> (Ptr Float) -> IO ((()))
srotmg a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castPtr a3} in 
  let {a4' = castPtr a4} in 
  let {a5' = castPtr a5} in 
  let {a6' = castPtr a6} in 
  srotmg'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


{-# INLINEABLE drotmg #-}
drotmg :: (Handle) -> (Ptr Double) -> (Ptr Double) -> (Ptr Double) -> (Ptr Double) -> (Ptr Double) -> IO ((()))
drotmg a1 a2 a3 a4 a5 a6 =
  let {a1' = useHandle a1} in 
  let {a2' = castPtr a2} in 
  let {a3' = castPtr a3} in 
  let {a4' = castPtr a4} in 
  let {a5' = castPtr a5} in 
  let {a6' = castPtr a6} in 
  drotmg'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>= \res' ->
  return (res')

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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