blas-hs (empty) → 0.1.0.2
raw patch · 11 files changed
+6611/−0 lines, 11 filesdep +Cabaldep +basedep +blas-hssetup-changed
Dependencies added: Cabal, base, blas-hs, storable-complex, vector
Files
- LICENSE +21/−0
- Setup.hs +2/−0
- blas-hs.cabal +80/−0
- src/Blas/Generic/Safe.hs +309/−0
- src/Blas/Generic/Unsafe.hs +309/−0
- src/Blas/Primitive/Safe.hs +2840/−0
- src/Blas/Primitive/Types.hs +79/−0
- src/Blas/Primitive/Unsafe.hs +2840/−0
- src/BlasCTypes.hs +16/−0
- src/FFI.hs +32/−0
- tests/MainTest.hs +83/−0
+ LICENSE view
@@ -0,0 +1,21 @@+The MIT License (MIT)++Copyright (c) 2014 Phil Ruffwind++Permission is hereby granted, free of charge, to any person obtaining a copy+of this software and associated documentation files (the "Software"), to deal+in the Software without restriction, including without limitation the rights+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+copies of the Software, and to permit persons to whom the Software is+furnished to do so, subject to the following conditions:++The above copyright notice and this permission notice shall be included in all+copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+SOFTWARE.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ blas-hs.cabal view
@@ -0,0 +1,80 @@+name: blas-hs+version: 0.1.0.2+synopsis: Low-level Haskell bindings to Blas.+description: This package provides a complete low-level binding to+ Blas via the foreign function interface, allowing Haskell+ programs to take advantage of optimized routines for+ vector and matrix operations in Haskell. See the source+ repository for more info.+homepage: https://github.com/Rufflewind/blas-hs+bug-reports: https://github.com/Rufflewind/blas-hs/issues+license: MIT+license-file: LICENSE+author: Phil Ruffwind+maintainer: rf@rufflewind.com+category: Math+build-type: Simple+cabal-version: >=1.16+ -- tested: 1.16 [hard] to 1.21 [soft]+ -- (limited by the test suite requirement on Cabal)++source-repository head+ type: git+ location: https://github.com/Rufflewind/blas-hs+++library+ exposed-modules: Blas.Primitive.Types+ Blas.Primitive.Safe+ Blas.Primitive.Unsafe+ Blas.Generic.Safe+ Blas.Generic.Unsafe+ other-modules: BlasCTypes+ FFI+ other-extensions: FlexibleInstances+ , ForeignFunctionInterface+ , TypeFamilies+ build-depends: base >=4.5 && <5+ -- tested: 4.5 [hard] to 4.8 [soft]+ -- (4.4 does not export constructors for CFloat et al)+ , storable-complex >=0.2 && <1+ -- tested: 0.2 [hard] to 0.3 [soft]+ -- (0.1 is buggy)+ ghc-options: -Wall+ hs-source-dirs: src+ default-language: Haskell98++ -- Use the following flags if you want `blas-hs` to be directly linked+ -- against an existing Blas implementation (e.g. ACML, OpenBLAS, MKL). This+ -- will relieve the `blas-hs` user of the responsibility of specifying the+ -- flags for linking to the Blas implementation.+ --+ -- The flags have no effect on the static version of `blas-hs`.+ --+ -- Note: If these flags are specified and a shared library is built, omit+ -- the corresponding flags in the test-suite (see below).+ extra-libraries:+ ld-options:++test-suite test+ type: detailed-0.9+ test-module: MainTest+ other-extensions: Rank2Types+ build-depends: base+ , blas-hs++ , Cabal >=1.16+ -- tested: 1.16 [hard] to 1.21 [soft]+ -- (0.15 does not have Progress)++ , vector >=0.8+ -- tested: 0.8 [hard] to 0.11 [soft]+ -- (0.7 has a different definition of MVector)++ hs-source-dirs: tests+ default-language: Haskell98++ -- Note: Omit these flags if they are specified by the library and a shared+ -- library is built (see above).+ extra-libraries: blas+ ld-options:
+ src/Blas/Generic/Safe.hs view
@@ -0,0 +1,309 @@+{- This file is auto-generated. Do not edit directly. -}+{-# LANGUAGE FlexibleInstances, TypeFamilies #-}+{-|++Stability: experimental++Generic interface to Blas using safe foreign calls. Refer to+the GHC documentation for more information regarding appropriate use of safe+and unsafe foreign calls.++The functions here are named in a similar fashion to the original Blas+interface, with the type-dependent letter(s) removed. Some functions have+been merged with others to allow the interface to work on both real and+complex numbers. If you can't a particular function, try looking for its+corresponding complex equivalent (e.g. @symv@ is a special case of 'hemv'+applied to real numbers).++It'd be really nice if these functions were actually documented. Alas, for+the time being, you'll have to refer to the various Blas docs scattered across+the Internet. Note that the interface is based off of /CBlas/, not Fortran+Blas, which is slightly different.++-}+module Blas.Generic.Safe+ ( Numeric(..)+ , RealNumeric(..)+ , C.dsdot+ , C.sdsdot+ ) where+import Data.Complex (Complex((:+)))+import Foreign (Ptr, Storable)+import FFI (getReturnValue)+import Blas.Primitive.Types (Order, Transpose, Uplo, Diag, Side)+import qualified Blas.Primitive.Safe as C++-- | Blas operations that are applicable to real and complex numbers.+--+-- Instances are defined for the 4 types supported by Blas: the+-- single- and double-precision floating point types and their complex+-- versions.+class (Floating a, Storable a) => Numeric a where++ -- | The corresponding real type of @a@.+ --+ -- In other words, @'RealType' ('Complex' a)@ is an alias for @a@. For+ -- everything else, @'RealType' a@ is simply @a@.+ type RealType a :: *++ dotu :: Int -> Ptr a -> Int -> Ptr a -> Int -> IO a+ dotc :: Int -> Ptr a -> Int -> Ptr a -> Int -> IO a+ nrm2 :: Int -> Ptr a -> Int -> IO (RealType a)+ asum :: Int -> Ptr a -> Int -> IO (RealType a)+ iamax :: Int -> Ptr a -> Int -> IO Int+ swap :: Int -> Ptr a -> Int -> Ptr a -> Int -> IO ()+ copy :: Int -> Ptr a -> Int -> Ptr a -> Int -> IO ()+ axpy :: Int -> a -> Ptr a -> Int -> Ptr a -> Int -> IO ()+ scal :: Int -> a -> Ptr a -> Int -> IO ()+ gemv :: Order -> Transpose -> Int -> Int -> a -> Ptr a -> Int -> Ptr a+ -> Int -> a -> Ptr a -> Int -> IO ()+ gbmv :: Order -> Transpose -> Int -> Int -> Int -> Int -> a -> Ptr a+ -> Int -> Ptr a -> Int -> a -> Ptr a -> Int -> IO ()+ trmv :: Order -> Uplo -> Transpose -> Diag -> Int -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ tbmv :: Order -> Uplo -> Transpose -> Diag -> Int -> Int -> Ptr a+ -> Int -> Ptr a -> Int -> IO ()+ tpmv :: Order -> Uplo -> Transpose -> Diag -> Int -> Ptr a -> Ptr a+ -> Int -> IO ()+ trsv :: Order -> Uplo -> Transpose -> Diag -> Int -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ tbsv :: Order -> Uplo -> Transpose -> Diag -> Int -> Int -> Ptr a+ -> Int -> Ptr a -> Int -> IO ()+ tpsv :: Order -> Uplo -> Transpose -> Diag -> Int -> Ptr a -> Ptr a+ -> Int -> IO ()+ hemv :: Order -> Uplo -> Int -> a -> Ptr a -> Int -> Ptr a -> Int+ -> a -> Ptr a -> Int -> IO ()+ hbmv :: Order -> Uplo -> Int -> Int -> a -> Ptr a -> Int -> Ptr a+ -> Int -> a -> Ptr a -> Int -> IO ()+ hpmv :: Order -> Uplo -> Int -> a -> Ptr a -> Ptr a -> Int -> a+ -> Ptr a -> Int -> IO ()+ geru :: Order -> Int -> Int -> a -> Ptr a -> Int -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ gerc :: Order -> Int -> Int -> a -> Ptr a -> Int -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ her :: Order -> Uplo -> Int -> RealType a -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ hpr :: Order -> Uplo -> Int -> RealType a -> Ptr a -> Int+ -> Ptr a -> IO ()+ her2 :: Order -> Uplo -> Int -> a -> Ptr a -> Int -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ hpr2 :: Order -> Uplo -> Int -> a -> Ptr a -> Int -> Ptr a -> Int+ -> Ptr a -> IO ()++ -- | Calculate a general matrix-matrix product:+ --+ -- > c := alpha * opa(a) * opb(b) + beta * c+ --+ -- where `opa` and `opb` are operations specified by @transa@ and+ -- @transb@ respectively.+ gemm :: Order -- ^ Layout of all matrices.+ -> Transpose -- ^ (@transa@) Operation applied to @a@.+ -> Transpose -- ^ (@transb@) Operation applied to @b@.+ -> Int -- ^ (@m@) Number of rows of @op(a)@ and @c@.+ -> Int -- ^ (@n@) Number of columns of @op(b)@ and @c@.+ -> Int -- ^ (@k@) Number of columns of @op(a)@ and+ -- number of of rows of @op(b)@.+ -> a -- ^ (@alpha@) Scaling factor of the product.+ -> Ptr a -- ^ (@a@) Pointer to a matrix.+ -> Int -- ^ (@lda@) Stride of the major dimension of @a@.+ -> Ptr a -- ^ (@b@) Pointer to a matrix.+ -> Int -- ^ (@ldb@) Stride of the major dimension of @b@.+ -> a -- ^ (@beta@) Scaling factor of the original @c@.+ -> Ptr a -- ^ (@c@) Pointer to a mutable matrix.+ -> Int -- ^ (@ldc@) Stride of the major dimension of @c@.+ -> IO ()++ symm :: Order -> Side -> Uplo -> Int -> Int -> a -> Ptr a -> Int+ -> Ptr a -> Int -> a -> Ptr a -> Int -> IO ()+ syrk :: Order -> Uplo -> Transpose -> Int -> Int -> a -> Ptr a -> Int+ -> a -> Ptr a -> Int -> IO ()+ syr2k :: Order -> Uplo -> Transpose -> Int -> Int -> a -> Ptr a -> Int+ -> Ptr a -> Int -> a -> Ptr a -> Int -> IO ()+ hemm :: Order -> Side -> Uplo -> Int -> Int -> a -> Ptr a -> Int+ -> Ptr a -> Int -> a -> Ptr a -> Int -> IO ()+ herk :: Order -> Uplo -> Transpose -> Int -> Int -> RealType a -> Ptr a+ -> Int -> RealType a -> Ptr a -> Int -> IO ()+ her2k :: Order -> Uplo -> Transpose -> Int -> Int -> a -> Ptr a -> Int+ -> Ptr a -> Int -> RealType a -> Ptr a -> Int -> IO ()+ trmm :: Order -> Side -> Uplo -> Transpose -> Diag -> Int -> Int+ -> a -> Ptr a -> Int -> Ptr a -> Int -> IO ()+ trsm :: Order -> Side -> Uplo -> Transpose -> Diag -> Int -> Int+ -> a -> Ptr a -> Int -> Ptr a -> Int -> IO ()++-- | Blas operations that are only applicable to real numbers.+--+-- Note: although complex versions of 'rot' and 'rotg' exist in many+-- implementations, they are not part of the official Blas standard and+-- therefore not included here. If you /really/ need them, submit a ticket+-- so we can try to come up with a solution.+class Numeric a => RealNumeric a where+ rotg :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()+ rotmg :: Ptr a -> Ptr a -> Ptr a -> a -> Ptr a -> IO ()+ rot :: Int -> Ptr a -> Int -> Ptr a -> Int -> a -> a -> IO ()+ rotm :: Int -> Ptr a -> Int -> Ptr a -> Int -> Ptr a -> IO ()++instance Numeric Float where+ type RealType Float = Float+ dotu = C.sdot+ dotc = C.sdot+ nrm2 = C.snrm2+ asum = C.sasum+ iamax = C.isamax+ swap = C.sswap+ copy = C.scopy+ axpy = C.saxpy+ scal = C.sscal+ gemv = C.sgemv+ gbmv = C.sgbmv+ trmv = C.strmv+ tbmv = C.stbmv+ tpmv = C.stpmv+ trsv = C.strsv+ tbsv = C.stbsv+ tpsv = C.stpsv+ hemv = C.ssymv+ hbmv = C.ssbmv+ hpmv = C.sspmv+ geru = C.sger+ gerc = C.sger+ her = C.ssyr+ hpr = C.sspr+ her2 = C.ssyr2+ hpr2 = C.sspr2+ gemm = C.sgemm+ symm = C.ssymm+ hemm = C.ssymm+ syrk = C.ssyrk+ herk = C.ssyrk+ syr2k = C.ssyr2k+ her2k = C.ssyr2k+ trmm = C.strmm+ trsm = C.strsm++instance RealNumeric Float where+ rotg = C.srotg+ rotmg = C.srotmg+ rot = C.srot+ rotm = C.srotm++instance Numeric Double where+ type RealType Double = Double+ dotu = C.ddot+ dotc = C.ddot+ nrm2 = C.dnrm2+ asum = C.dasum+ iamax = C.idamax+ swap = C.dswap+ copy = C.dcopy+ axpy = C.daxpy+ scal = C.dscal+ gemv = C.dgemv+ gbmv = C.dgbmv+ trmv = C.dtrmv+ tbmv = C.dtbmv+ tpmv = C.dtpmv+ trsv = C.dtrsv+ tbsv = C.dtbsv+ tpsv = C.dtpsv+ hemv = C.dsymv+ hbmv = C.dsbmv+ hpmv = C.dspmv+ geru = C.dger+ gerc = C.dger+ her = C.dsyr+ hpr = C.dspr+ her2 = C.dsyr2+ hpr2 = C.dspr2+ gemm = C.dgemm+ symm = C.dsymm+ hemm = C.dsymm+ syrk = C.dsyrk+ herk = C.dsyrk+ syr2k = C.dsyr2k+ her2k = C.dsyr2k+ trmm = C.dtrmm+ trsm = C.dtrsm++instance RealNumeric Double where+ rotg = C.drotg+ rotmg = C.drotmg+ rot = C.drot+ rotm = C.drotm++instance Numeric (Complex Float) where+ type RealType (Complex Float) = Float+ dotu a b c d e = getReturnValue (C.cdotu_sub a b c d e)+ dotc a b c d e = getReturnValue (C.cdotc_sub a b c d e)+ nrm2 = C.scnrm2+ asum = C.scasum+ iamax = C.icamax+ swap = C.cswap+ copy = C.ccopy+ axpy = C.caxpy+ scal n (alpha :+ 0) = C.csscal n alpha+ scal n alpha = C.cscal n alpha+ gemv = C.cgemv+ gbmv = C.cgbmv+ trmv = C.ctrmv+ tbmv = C.ctbmv+ tpmv = C.ctpmv+ trsv = C.ctrsv+ tbsv = C.ctbsv+ tpsv = C.ctpsv+ hemv = C.chemv+ hbmv = C.chbmv+ hpmv = C.chpmv+ geru = C.cgeru+ gerc = C.cgerc+ her = C.cher+ hpr = C.chpr+ her2 = C.cher2+ hpr2 = C.chpr2+ gemm = C.cgemm+ symm = C.csymm+ hemm = C.chemm+ syrk = C.csyrk+ herk = C.cherk+ syr2k = C.csyr2k+ her2k = C.cher2k+ trmm = C.ctrmm+ trsm = C.ctrsm++instance Numeric (Complex Double) where+ type RealType (Complex Double) = Double+ dotu a b c d e = getReturnValue (C.zdotu_sub a b c d e)+ dotc a b c d e = getReturnValue (C.zdotc_sub a b c d e)+ nrm2 = C.dznrm2+ asum = C.dzasum+ iamax = C.izamax+ swap = C.zswap+ copy = C.zcopy+ axpy = C.zaxpy+ scal n (alpha :+ 0) = C.zdscal n alpha+ scal n alpha = C.zscal n alpha+ gemv = C.zgemv+ gbmv = C.zgbmv+ trmv = C.ztrmv+ tbmv = C.ztbmv+ tpmv = C.ztpmv+ trsv = C.ztrsv+ tbsv = C.ztbsv+ tpsv = C.ztpsv+ hemv = C.zhemv+ hbmv = C.zhbmv+ hpmv = C.zhpmv+ geru = C.zgeru+ gerc = C.zgerc+ her = C.zher+ hpr = C.zhpr+ her2 = C.zher2+ hpr2 = C.zhpr2+ gemm = C.zgemm+ symm = C.zsymm+ hemm = C.zhemm+ syrk = C.zsyrk+ herk = C.zherk+ syr2k = C.zsyr2k+ her2k = C.zher2k+ trmm = C.ztrmm+ trsm = C.ztrsm
+ src/Blas/Generic/Unsafe.hs view
@@ -0,0 +1,309 @@+{- This file is auto-generated. Do not edit directly. -}+{-# LANGUAGE FlexibleInstances, TypeFamilies #-}+{-|++Stability: experimental++Generic interface to Blas using unsafe foreign calls. Refer to+the GHC documentation for more information regarding appropriate use of safe+and unsafe foreign calls.++The functions here are named in a similar fashion to the original Blas+interface, with the type-dependent letter(s) removed. Some functions have+been merged with others to allow the interface to work on both real and+complex numbers. If you can't a particular function, try looking for its+corresponding complex equivalent (e.g. @symv@ is a special case of 'hemv'+applied to real numbers).++It'd be really nice if these functions were actually documented. Alas, for+the time being, you'll have to refer to the various Blas docs scattered across+the Internet. Note that the interface is based off of /CBlas/, not Fortran+Blas, which is slightly different.++-}+module Blas.Generic.Unsafe+ ( Numeric(..)+ , RealNumeric(..)+ , C.dsdot+ , C.sdsdot+ ) where+import Data.Complex (Complex((:+)))+import Foreign (Ptr, Storable)+import FFI (getReturnValue)+import Blas.Primitive.Types (Order, Transpose, Uplo, Diag, Side)+import qualified Blas.Primitive.Unsafe as C++-- | Blas operations that are applicable to real and complex numbers.+--+-- Instances are defined for the 4 types supported by Blas: the+-- single- and double-precision floating point types and their complex+-- versions.+class (Floating a, Storable a) => Numeric a where++ -- | The corresponding real type of @a@.+ --+ -- In other words, @'RealType' ('Complex' a)@ is an alias for @a@. For+ -- everything else, @'RealType' a@ is simply @a@.+ type RealType a :: *++ dotu :: Int -> Ptr a -> Int -> Ptr a -> Int -> IO a+ dotc :: Int -> Ptr a -> Int -> Ptr a -> Int -> IO a+ nrm2 :: Int -> Ptr a -> Int -> IO (RealType a)+ asum :: Int -> Ptr a -> Int -> IO (RealType a)+ iamax :: Int -> Ptr a -> Int -> IO Int+ swap :: Int -> Ptr a -> Int -> Ptr a -> Int -> IO ()+ copy :: Int -> Ptr a -> Int -> Ptr a -> Int -> IO ()+ axpy :: Int -> a -> Ptr a -> Int -> Ptr a -> Int -> IO ()+ scal :: Int -> a -> Ptr a -> Int -> IO ()+ gemv :: Order -> Transpose -> Int -> Int -> a -> Ptr a -> Int -> Ptr a+ -> Int -> a -> Ptr a -> Int -> IO ()+ gbmv :: Order -> Transpose -> Int -> Int -> Int -> Int -> a -> Ptr a+ -> Int -> Ptr a -> Int -> a -> Ptr a -> Int -> IO ()+ trmv :: Order -> Uplo -> Transpose -> Diag -> Int -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ tbmv :: Order -> Uplo -> Transpose -> Diag -> Int -> Int -> Ptr a+ -> Int -> Ptr a -> Int -> IO ()+ tpmv :: Order -> Uplo -> Transpose -> Diag -> Int -> Ptr a -> Ptr a+ -> Int -> IO ()+ trsv :: Order -> Uplo -> Transpose -> Diag -> Int -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ tbsv :: Order -> Uplo -> Transpose -> Diag -> Int -> Int -> Ptr a+ -> Int -> Ptr a -> Int -> IO ()+ tpsv :: Order -> Uplo -> Transpose -> Diag -> Int -> Ptr a -> Ptr a+ -> Int -> IO ()+ hemv :: Order -> Uplo -> Int -> a -> Ptr a -> Int -> Ptr a -> Int+ -> a -> Ptr a -> Int -> IO ()+ hbmv :: Order -> Uplo -> Int -> Int -> a -> Ptr a -> Int -> Ptr a+ -> Int -> a -> Ptr a -> Int -> IO ()+ hpmv :: Order -> Uplo -> Int -> a -> Ptr a -> Ptr a -> Int -> a+ -> Ptr a -> Int -> IO ()+ geru :: Order -> Int -> Int -> a -> Ptr a -> Int -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ gerc :: Order -> Int -> Int -> a -> Ptr a -> Int -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ her :: Order -> Uplo -> Int -> RealType a -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ hpr :: Order -> Uplo -> Int -> RealType a -> Ptr a -> Int+ -> Ptr a -> IO ()+ her2 :: Order -> Uplo -> Int -> a -> Ptr a -> Int -> Ptr a -> Int+ -> Ptr a -> Int -> IO ()+ hpr2 :: Order -> Uplo -> Int -> a -> Ptr a -> Int -> Ptr a -> Int+ -> Ptr a -> IO ()++ -- | Calculate a general matrix-matrix product:+ --+ -- > c := alpha * opa(a) * opb(b) + beta * c+ --+ -- where `opa` and `opb` are operations specified by @transa@ and+ -- @transb@ respectively.+ gemm :: Order -- ^ Layout of all matrices.+ -> Transpose -- ^ (@transa@) Operation applied to @a@.+ -> Transpose -- ^ (@transb@) Operation applied to @b@.+ -> Int -- ^ (@m@) Number of rows of @op(a)@ and @c@.+ -> Int -- ^ (@n@) Number of columns of @op(b)@ and @c@.+ -> Int -- ^ (@k@) Number of columns of @op(a)@ and+ -- number of of rows of @op(b)@.+ -> a -- ^ (@alpha@) Scaling factor of the product.+ -> Ptr a -- ^ (@a@) Pointer to a matrix.+ -> Int -- ^ (@lda@) Stride of the major dimension of @a@.+ -> Ptr a -- ^ (@b@) Pointer to a matrix.+ -> Int -- ^ (@ldb@) Stride of the major dimension of @b@.+ -> a -- ^ (@beta@) Scaling factor of the original @c@.+ -> Ptr a -- ^ (@c@) Pointer to a mutable matrix.+ -> Int -- ^ (@ldc@) Stride of the major dimension of @c@.+ -> IO ()++ symm :: Order -> Side -> Uplo -> Int -> Int -> a -> Ptr a -> Int+ -> Ptr a -> Int -> a -> Ptr a -> Int -> IO ()+ syrk :: Order -> Uplo -> Transpose -> Int -> Int -> a -> Ptr a -> Int+ -> a -> Ptr a -> Int -> IO ()+ syr2k :: Order -> Uplo -> Transpose -> Int -> Int -> a -> Ptr a -> Int+ -> Ptr a -> Int -> a -> Ptr a -> Int -> IO ()+ hemm :: Order -> Side -> Uplo -> Int -> Int -> a -> Ptr a -> Int+ -> Ptr a -> Int -> a -> Ptr a -> Int -> IO ()+ herk :: Order -> Uplo -> Transpose -> Int -> Int -> RealType a -> Ptr a+ -> Int -> RealType a -> Ptr a -> Int -> IO ()+ her2k :: Order -> Uplo -> Transpose -> Int -> Int -> a -> Ptr a -> Int+ -> Ptr a -> Int -> RealType a -> Ptr a -> Int -> IO ()+ trmm :: Order -> Side -> Uplo -> Transpose -> Diag -> Int -> Int+ -> a -> Ptr a -> Int -> Ptr a -> Int -> IO ()+ trsm :: Order -> Side -> Uplo -> Transpose -> Diag -> Int -> Int+ -> a -> Ptr a -> Int -> Ptr a -> Int -> IO ()++-- | Blas operations that are only applicable to real numbers.+--+-- Note: although complex versions of 'rot' and 'rotg' exist in many+-- implementations, they are not part of the official Blas standard and+-- therefore not included here. If you /really/ need them, submit a ticket+-- so we can try to come up with a solution.+class Numeric a => RealNumeric a where+ rotg :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()+ rotmg :: Ptr a -> Ptr a -> Ptr a -> a -> Ptr a -> IO ()+ rot :: Int -> Ptr a -> Int -> Ptr a -> Int -> a -> a -> IO ()+ rotm :: Int -> Ptr a -> Int -> Ptr a -> Int -> Ptr a -> IO ()++instance Numeric Float where+ type RealType Float = Float+ dotu = C.sdot+ dotc = C.sdot+ nrm2 = C.snrm2+ asum = C.sasum+ iamax = C.isamax+ swap = C.sswap+ copy = C.scopy+ axpy = C.saxpy+ scal = C.sscal+ gemv = C.sgemv+ gbmv = C.sgbmv+ trmv = C.strmv+ tbmv = C.stbmv+ tpmv = C.stpmv+ trsv = C.strsv+ tbsv = C.stbsv+ tpsv = C.stpsv+ hemv = C.ssymv+ hbmv = C.ssbmv+ hpmv = C.sspmv+ geru = C.sger+ gerc = C.sger+ her = C.ssyr+ hpr = C.sspr+ her2 = C.ssyr2+ hpr2 = C.sspr2+ gemm = C.sgemm+ symm = C.ssymm+ hemm = C.ssymm+ syrk = C.ssyrk+ herk = C.ssyrk+ syr2k = C.ssyr2k+ her2k = C.ssyr2k+ trmm = C.strmm+ trsm = C.strsm++instance RealNumeric Float where+ rotg = C.srotg+ rotmg = C.srotmg+ rot = C.srot+ rotm = C.srotm++instance Numeric Double where+ type RealType Double = Double+ dotu = C.ddot+ dotc = C.ddot+ nrm2 = C.dnrm2+ asum = C.dasum+ iamax = C.idamax+ swap = C.dswap+ copy = C.dcopy+ axpy = C.daxpy+ scal = C.dscal+ gemv = C.dgemv+ gbmv = C.dgbmv+ trmv = C.dtrmv+ tbmv = C.dtbmv+ tpmv = C.dtpmv+ trsv = C.dtrsv+ tbsv = C.dtbsv+ tpsv = C.dtpsv+ hemv = C.dsymv+ hbmv = C.dsbmv+ hpmv = C.dspmv+ geru = C.dger+ gerc = C.dger+ her = C.dsyr+ hpr = C.dspr+ her2 = C.dsyr2+ hpr2 = C.dspr2+ gemm = C.dgemm+ symm = C.dsymm+ hemm = C.dsymm+ syrk = C.dsyrk+ herk = C.dsyrk+ syr2k = C.dsyr2k+ her2k = C.dsyr2k+ trmm = C.dtrmm+ trsm = C.dtrsm++instance RealNumeric Double where+ rotg = C.drotg+ rotmg = C.drotmg+ rot = C.drot+ rotm = C.drotm++instance Numeric (Complex Float) where+ type RealType (Complex Float) = Float+ dotu a b c d e = getReturnValue (C.cdotu_sub a b c d e)+ dotc a b c d e = getReturnValue (C.cdotc_sub a b c d e)+ nrm2 = C.scnrm2+ asum = C.scasum+ iamax = C.icamax+ swap = C.cswap+ copy = C.ccopy+ axpy = C.caxpy+ scal n (alpha :+ 0) = C.csscal n alpha+ scal n alpha = C.cscal n alpha+ gemv = C.cgemv+ gbmv = C.cgbmv+ trmv = C.ctrmv+ tbmv = C.ctbmv+ tpmv = C.ctpmv+ trsv = C.ctrsv+ tbsv = C.ctbsv+ tpsv = C.ctpsv+ hemv = C.chemv+ hbmv = C.chbmv+ hpmv = C.chpmv+ geru = C.cgeru+ gerc = C.cgerc+ her = C.cher+ hpr = C.chpr+ her2 = C.cher2+ hpr2 = C.chpr2+ gemm = C.cgemm+ symm = C.csymm+ hemm = C.chemm+ syrk = C.csyrk+ herk = C.cherk+ syr2k = C.csyr2k+ her2k = C.cher2k+ trmm = C.ctrmm+ trsm = C.ctrsm++instance Numeric (Complex Double) where+ type RealType (Complex Double) = Double+ dotu a b c d e = getReturnValue (C.zdotu_sub a b c d e)+ dotc a b c d e = getReturnValue (C.zdotc_sub a b c d e)+ nrm2 = C.dznrm2+ asum = C.dzasum+ iamax = C.izamax+ swap = C.zswap+ copy = C.zcopy+ axpy = C.zaxpy+ scal n (alpha :+ 0) = C.zdscal n alpha+ scal n alpha = C.zscal n alpha+ gemv = C.zgemv+ gbmv = C.zgbmv+ trmv = C.ztrmv+ tbmv = C.ztbmv+ tpmv = C.ztpmv+ trsv = C.ztrsv+ tbsv = C.ztbsv+ tpsv = C.ztpsv+ hemv = C.zhemv+ hbmv = C.zhbmv+ hpmv = C.zhpmv+ geru = C.zgeru+ gerc = C.zgerc+ her = C.zher+ hpr = C.zhpr+ her2 = C.zher2+ hpr2 = C.zhpr2+ gemm = C.zgemm+ symm = C.zsymm+ hemm = C.zhemm+ syrk = C.zsyrk+ herk = C.zherk+ syr2k = C.zsyr2k+ her2k = C.zher2k+ trmm = C.ztrmm+ trsm = C.ztrsm
+ src/Blas/Primitive/Safe.hs view
@@ -0,0 +1,2840 @@+-- GENERATED by C->Haskell Compiler, version 0.17.2 Crystal Seed, 24 Jan 2009 (Haskell)+-- Edit the ORIGNAL .chs file instead!+++{-# LINE 1 "src/Blas/Primitive/Safe_.chs" #-}+{- This file is auto-generated. Do not edit directly. -}+{-# LANGUAGE ForeignFunctionInterface #-}+{-|++Stability: stable++Foreign function interface to Blas. These functions use safe+foreign calls. Refer to the GHC documentation for more information regarding+appropriate use of safe and unsafe foreign calls.++-}+module Blas.Primitive.Safe (sdsdot, dsdot, sdot, ddot, cdotu_sub, zdotu_sub, cdotc_sub, zdotc_sub, snrm2, dnrm2, scnrm2, dznrm2, sasum, dasum, scasum, dzasum, isamax, idamax, icamax, izamax, sswap, dswap, cswap, zswap, scopy, dcopy, ccopy, zcopy, saxpy, daxpy, caxpy, zaxpy, srotg, drotg, srotmg, drotmg, srot, drot, srotm, drotm, sscal, dscal, cscal, csscal, zscal, zdscal, sgemv, dgemv, cgemv, zgemv, sgbmv, dgbmv, cgbmv, zgbmv, strmv, dtrmv, ctrmv, ztrmv, stbmv, dtbmv, ctbmv, ztbmv, stpmv, dtpmv, ctpmv, ztpmv, strsv, dtrsv, ctrsv, ztrsv, stbsv, dtbsv, ctbsv, ztbsv, stpsv, dtpsv, ctpsv, ztpsv, ssymv, dsymv, ssbmv, dsbmv, sspmv, dspmv, sger, dger, ssyr, dsyr, ssyr2, dsyr2, sspr, dspr, sspr2, dspr2, chemv, zhemv, chbmv, zhbmv, chpmv, zhpmv, cgeru, zgeru, cgerc, zgerc, cher, zher, chpr, zhpr, cher2, zher2, chpr2, zhpr2, sgemm, dgemm, cgemm, zgemm, ssymm, dsymm, csymm, zsymm, ssyrk, dsyrk, csyrk, zsyrk, ssyr2k, dsyr2k, csyr2k, zsyr2k, chemm, zhemm, cherk, zherk, cher2k, zher2k, strmm, dtrmm, ctrmm, ztrmm, strsm, dtrsm, ctrsm, ztrsm) where+import Prelude hiding (Either(Left, Right))+import Data.Complex (Complex)+import Foreign (Ptr, castPtr)+import Foreign.C.Types+import Foreign.Storable.Complex ()+import Blas.Primitive.Types+import BlasCTypes+import FFI++++sdsdot :: (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ((Float))+sdsdot a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = CFloat a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ sdsdot'_ a1' a2' a3' a4' a5' a6' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 24 "src/Blas/Primitive/Safe_.chs" #-}+++dsdot :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ((Double))+dsdot a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ dsdot'_ a1' a2' a3' a4' a5' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 26 "src/Blas/Primitive/Safe_.chs" #-}+++sdot :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ((Float))+sdot a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ sdot'_ a1' a2' a3' a4' a5' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 28 "src/Blas/Primitive/Safe_.chs" #-}+++ddot :: (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ((Double))+ddot a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ ddot'_ a1' a2' a3' a4' a5' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 30 "src/Blas/Primitive/Safe_.chs" #-}+++cdotu_sub :: (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> IO ()+cdotu_sub a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ cdotu_sub'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 32 "src/Blas/Primitive/Safe_.chs" #-}+++zdotu_sub :: (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> IO ()+zdotu_sub a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ zdotu_sub'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 34 "src/Blas/Primitive/Safe_.chs" #-}+++cdotc_sub :: (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> IO ()+cdotc_sub a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ cdotc_sub'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 36 "src/Blas/Primitive/Safe_.chs" #-}+++zdotc_sub :: (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> IO ()+zdotc_sub a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ zdotc_sub'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 38 "src/Blas/Primitive/Safe_.chs" #-}+++snrm2 :: (Int) -> (Ptr Float) -> (Int) -> IO ((Float))+snrm2 a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ snrm2'_ a1' a2' a3' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 40 "src/Blas/Primitive/Safe_.chs" #-}+++dnrm2 :: (Int) -> (Ptr Double) -> (Int) -> IO ((Double))+dnrm2 a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ dnrm2'_ a1' a2' a3' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 42 "src/Blas/Primitive/Safe_.chs" #-}+++scnrm2 :: (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ((Float))+scnrm2 a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ scnrm2'_ a1' a2' a3' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 44 "src/Blas/Primitive/Safe_.chs" #-}+++dznrm2 :: (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ((Double))+dznrm2 a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ dznrm2'_ a1' a2' a3' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 46 "src/Blas/Primitive/Safe_.chs" #-}+++sasum :: (Int) -> (Ptr Float) -> (Int) -> IO ((Float))+sasum a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ sasum'_ a1' a2' a3' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 48 "src/Blas/Primitive/Safe_.chs" #-}+++dasum :: (Int) -> (Ptr Double) -> (Int) -> IO ((Double))+dasum a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ dasum'_ a1' a2' a3' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 50 "src/Blas/Primitive/Safe_.chs" #-}+++scasum :: (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ((Float))+scasum a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ scasum'_ a1' a2' a3' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 52 "src/Blas/Primitive/Safe_.chs" #-}+++dzasum :: (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ((Double))+dzasum a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ dzasum'_ a1' a2' a3' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 54 "src/Blas/Primitive/Safe_.chs" #-}+++isamax :: (Int) -> (Ptr Float) -> (Int) -> IO ((Int))+isamax a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ isamax'_ a1' a2' a3' >>= \res ->+ let {res' = fromIntegral res} in+ return (res')++{-# LINE 56 "src/Blas/Primitive/Safe_.chs" #-}+++idamax :: (Int) -> (Ptr Double) -> (Int) -> IO ((Int))+idamax a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ idamax'_ a1' a2' a3' >>= \res ->+ let {res' = fromIntegral res} in+ return (res')++{-# LINE 58 "src/Blas/Primitive/Safe_.chs" #-}+++icamax :: (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ((Int))+icamax a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ icamax'_ a1' a2' a3' >>= \res ->+ let {res' = fromIntegral res} in+ return (res')++{-# LINE 60 "src/Blas/Primitive/Safe_.chs" #-}+++izamax :: (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ((Int))+izamax a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ izamax'_ a1' a2' a3' >>= \res ->+ let {res' = fromIntegral res} in+ return (res')++{-# LINE 62 "src/Blas/Primitive/Safe_.chs" #-}+++sswap :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+sswap a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ sswap'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 64 "src/Blas/Primitive/Safe_.chs" #-}+++dswap :: (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dswap a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ dswap'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 66 "src/Blas/Primitive/Safe_.chs" #-}+++cswap :: (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cswap a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ cswap'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 68 "src/Blas/Primitive/Safe_.chs" #-}+++zswap :: (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zswap a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ zswap'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 70 "src/Blas/Primitive/Safe_.chs" #-}+++scopy :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+scopy a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ scopy'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 72 "src/Blas/Primitive/Safe_.chs" #-}+++dcopy :: (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dcopy a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ dcopy'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 74 "src/Blas/Primitive/Safe_.chs" #-}+++ccopy :: (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ccopy a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ ccopy'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 76 "src/Blas/Primitive/Safe_.chs" #-}+++zcopy :: (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zcopy a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ zcopy'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 78 "src/Blas/Primitive/Safe_.chs" #-}+++saxpy :: (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+saxpy a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = CFloat a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ saxpy'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 80 "src/Blas/Primitive/Safe_.chs" #-}+++daxpy :: (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+daxpy a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = CDouble a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ daxpy'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 82 "src/Blas/Primitive/Safe_.chs" #-}+++caxpy :: (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+caxpy a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ withVoidPtr a2 $ \a2' ->+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ caxpy'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 84 "src/Blas/Primitive/Safe_.chs" #-}+++zaxpy :: (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zaxpy a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ withVoidPtr a2 $ \a2' ->+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ zaxpy'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 86 "src/Blas/Primitive/Safe_.chs" #-}+++srotg :: (Ptr Float) -> (Ptr Float) -> (Ptr Float) -> (Ptr Float) -> IO ()+srotg a1 a2 a3 a4 =+ let {a1' = castPtr a1} in+ let {a2' = castPtr a2} in+ let {a3' = castPtr a3} in+ let {a4' = castPtr a4} in+ srotg'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 88 "src/Blas/Primitive/Safe_.chs" #-}+++drotg :: (Ptr Double) -> (Ptr Double) -> (Ptr Double) -> (Ptr Double) -> IO ()+drotg a1 a2 a3 a4 =+ let {a1' = castPtr a1} in+ let {a2' = castPtr a2} in+ let {a3' = castPtr a3} in+ let {a4' = castPtr a4} in+ drotg'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 90 "src/Blas/Primitive/Safe_.chs" #-}+++srotmg :: (Ptr Float) -> (Ptr Float) -> (Ptr Float) -> (Float) -> (Ptr Float) -> IO ()+srotmg a1 a2 a3 a4 a5 =+ let {a1' = castPtr a1} in+ let {a2' = castPtr a2} in+ let {a3' = castPtr a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ srotmg'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 92 "src/Blas/Primitive/Safe_.chs" #-}+++drotmg :: (Ptr Double) -> (Ptr Double) -> (Ptr Double) -> (Double) -> (Ptr Double) -> IO ()+drotmg a1 a2 a3 a4 a5 =+ let {a1' = castPtr a1} in+ let {a2' = castPtr a2} in+ let {a3' = castPtr a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ drotmg'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 94 "src/Blas/Primitive/Safe_.chs" #-}+++srot :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Float) -> IO ()+srot a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CFloat a6} in+ let {a7' = CFloat a7} in+ srot'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 96 "src/Blas/Primitive/Safe_.chs" #-}+++drot :: (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Double) -> IO ()+drot a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CDouble a6} in+ let {a7' = CDouble a7} in+ drot'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 98 "src/Blas/Primitive/Safe_.chs" #-}+++srotm :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> IO ()+srotm a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ srotm'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 100 "src/Blas/Primitive/Safe_.chs" #-}+++drotm :: (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> IO ()+drotm a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ drotm'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 102 "src/Blas/Primitive/Safe_.chs" #-}+++sscal :: (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+sscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ let {a2' = CFloat a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ sscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 104 "src/Blas/Primitive/Safe_.chs" #-}+++dscal :: (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ let {a2' = CDouble a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ dscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 106 "src/Blas/Primitive/Safe_.chs" #-}+++cscal :: (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ withVoidPtr a2 $ \a2' ->+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ cscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 108 "src/Blas/Primitive/Safe_.chs" #-}+++csscal :: (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+csscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ let {a2' = CFloat a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ csscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 110 "src/Blas/Primitive/Safe_.chs" #-}+++zscal :: (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ withVoidPtr a2 $ \a2' ->+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ zscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 112 "src/Blas/Primitive/Safe_.chs" #-}+++zdscal :: (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zdscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ let {a2' = CDouble a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ zdscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 114 "src/Blas/Primitive/Safe_.chs" #-}+++sgemv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+sgemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = CFloat a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = CFloat a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ sgemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 116 "src/Blas/Primitive/Safe_.chs" #-}+++dgemv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dgemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = CDouble a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = CDouble a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ dgemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 118 "src/Blas/Primitive/Safe_.chs" #-}+++cgemv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cgemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ withVoidPtr a5 $ \a5' ->+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ withVoidPtr a10 $ \a10' ->+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ cgemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 120 "src/Blas/Primitive/Safe_.chs" #-}+++zgemv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zgemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ withVoidPtr a5 $ \a5' ->+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ withVoidPtr a10 $ \a10' ->+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ zgemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 122 "src/Blas/Primitive/Safe_.chs" #-}+++sgbmv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+sgbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = CFloat a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ let {a12' = CFloat a12} in+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ sgbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 124 "src/Blas/Primitive/Safe_.chs" #-}+++dgbmv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dgbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = CDouble a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ let {a12' = CDouble a12} in+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ dgbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 126 "src/Blas/Primitive/Safe_.chs" #-}+++cgbmv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cgbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ withVoidPtr a7 $ \a7' ->+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ withVoidPtr a12 $ \a12' ->+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ cgbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 128 "src/Blas/Primitive/Safe_.chs" #-}+++zgbmv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zgbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ withVoidPtr a7 $ \a7' ->+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ withVoidPtr a12 $ \a12' ->+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ zgbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 130 "src/Blas/Primitive/Safe_.chs" #-}+++strmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+strmv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ strmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 132 "src/Blas/Primitive/Safe_.chs" #-}+++dtrmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtrmv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ dtrmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 134 "src/Blas/Primitive/Safe_.chs" #-}+++ctrmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctrmv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ ctrmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 136 "src/Blas/Primitive/Safe_.chs" #-}+++ztrmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztrmv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ ztrmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 138 "src/Blas/Primitive/Safe_.chs" #-}+++stbmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+stbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ stbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 140 "src/Blas/Primitive/Safe_.chs" #-}+++dtbmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ dtbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 142 "src/Blas/Primitive/Safe_.chs" #-}+++ctbmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ ctbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 144 "src/Blas/Primitive/Safe_.chs" #-}+++ztbmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ ztbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 146 "src/Blas/Primitive/Safe_.chs" #-}+++stpmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Float) -> (Ptr Float) -> (Int) -> IO ()+stpmv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ stpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 148 "src/Blas/Primitive/Safe_.chs" #-}+++dtpmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Double) -> (Ptr Double) -> (Int) -> IO ()+dtpmv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ dtpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 150 "src/Blas/Primitive/Safe_.chs" #-}+++ctpmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Float)) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctpmv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ ctpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 152 "src/Blas/Primitive/Safe_.chs" #-}+++ztpmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Double)) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztpmv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ ztpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 154 "src/Blas/Primitive/Safe_.chs" #-}+++strsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+strsv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ strsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 156 "src/Blas/Primitive/Safe_.chs" #-}+++dtrsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtrsv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ dtrsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 158 "src/Blas/Primitive/Safe_.chs" #-}+++ctrsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctrsv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ ctrsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 160 "src/Blas/Primitive/Safe_.chs" #-}+++ztrsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztrsv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ ztrsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 162 "src/Blas/Primitive/Safe_.chs" #-}+++stbsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+stbsv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ stbsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 164 "src/Blas/Primitive/Safe_.chs" #-}+++dtbsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtbsv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ dtbsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 166 "src/Blas/Primitive/Safe_.chs" #-}+++ctbsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctbsv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ ctbsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 168 "src/Blas/Primitive/Safe_.chs" #-}+++ztbsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztbsv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ ztbsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 170 "src/Blas/Primitive/Safe_.chs" #-}+++stpsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Float) -> (Ptr Float) -> (Int) -> IO ()+stpsv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ stpsv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 172 "src/Blas/Primitive/Safe_.chs" #-}+++dtpsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Double) -> (Ptr Double) -> (Int) -> IO ()+dtpsv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ dtpsv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 174 "src/Blas/Primitive/Safe_.chs" #-}+++ctpsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Float)) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctpsv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ ctpsv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 176 "src/Blas/Primitive/Safe_.chs" #-}+++ztpsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Double)) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztpsv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ ztpsv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 178 "src/Blas/Primitive/Safe_.chs" #-}+++ssymv :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+ssymv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CFloat a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ ssymv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 180 "src/Blas/Primitive/Safe_.chs" #-}+++dsymv :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dsymv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CDouble a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ dsymv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 182 "src/Blas/Primitive/Safe_.chs" #-}+++ssbmv :: (Order) -> (Uplo) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+ssbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = CFloat a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = CFloat a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ ssbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 184 "src/Blas/Primitive/Safe_.chs" #-}+++dsbmv :: (Order) -> (Uplo) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dsbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = CDouble a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = CDouble a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ dsbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 186 "src/Blas/Primitive/Safe_.chs" #-}+++sspmv :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+sspmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CFloat a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ sspmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 188 "src/Blas/Primitive/Safe_.chs" #-}+++dspmv :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dspmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CDouble a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ dspmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 190 "src/Blas/Primitive/Safe_.chs" #-}+++sger :: (Order) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+sger a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ sger'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 192 "src/Blas/Primitive/Safe_.chs" #-}+++dger :: (Order) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dger a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ dger'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 194 "src/Blas/Primitive/Safe_.chs" #-}+++ssyr :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+ssyr a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ ssyr'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 196 "src/Blas/Primitive/Safe_.chs" #-}+++dsyr :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dsyr a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ dsyr'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 198 "src/Blas/Primitive/Safe_.chs" #-}+++ssyr2 :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+ssyr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ ssyr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 200 "src/Blas/Primitive/Safe_.chs" #-}+++dsyr2 :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dsyr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ dsyr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 202 "src/Blas/Primitive/Safe_.chs" #-}+++sspr :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> IO ()+sspr a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ sspr'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 204 "src/Blas/Primitive/Safe_.chs" #-}+++dspr :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> IO ()+dspr a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ dspr'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 206 "src/Blas/Primitive/Safe_.chs" #-}+++sspr2 :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> IO ()+sspr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ sspr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 208 "src/Blas/Primitive/Safe_.chs" #-}+++dspr2 :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> IO ()+dspr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ dspr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 210 "src/Blas/Primitive/Safe_.chs" #-}+++chemv :: (Order) -> (Uplo) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+chemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ withVoidPtr a9 $ \a9' ->+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ chemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 212 "src/Blas/Primitive/Safe_.chs" #-}+++zhemv :: (Order) -> (Uplo) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zhemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ withVoidPtr a9 $ \a9' ->+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ zhemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 214 "src/Blas/Primitive/Safe_.chs" #-}+++chbmv :: (Order) -> (Uplo) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+chbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ withVoidPtr a5 $ \a5' ->+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ withVoidPtr a10 $ \a10' ->+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ chbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 216 "src/Blas/Primitive/Safe_.chs" #-}+++zhbmv :: (Order) -> (Uplo) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zhbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ withVoidPtr a5 $ \a5' ->+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ withVoidPtr a10 $ \a10' ->+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ zhbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 218 "src/Blas/Primitive/Safe_.chs" #-}+++chpmv :: (Order) -> (Uplo) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+chpmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ chpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 220 "src/Blas/Primitive/Safe_.chs" #-}+++zhpmv :: (Order) -> (Uplo) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zhpmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ zhpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 222 "src/Blas/Primitive/Safe_.chs" #-}+++cgeru :: (Order) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cgeru a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ cgeru'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 224 "src/Blas/Primitive/Safe_.chs" #-}+++zgeru :: (Order) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zgeru a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ zgeru'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 226 "src/Blas/Primitive/Safe_.chs" #-}+++cgerc :: (Order) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cgerc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ cgerc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 228 "src/Blas/Primitive/Safe_.chs" #-}+++zgerc :: (Order) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zgerc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ zgerc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 230 "src/Blas/Primitive/Safe_.chs" #-}+++cher :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cher a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ cher'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 232 "src/Blas/Primitive/Safe_.chs" #-}+++zher :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zher a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ zher'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 234 "src/Blas/Primitive/Safe_.chs" #-}+++chpr :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> IO ()+chpr a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ chpr'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 236 "src/Blas/Primitive/Safe_.chs" #-}+++zhpr :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> IO ()+zhpr a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ zhpr'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 238 "src/Blas/Primitive/Safe_.chs" #-}+++cher2 :: (Order) -> (Uplo) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cher2 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ cher2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 240 "src/Blas/Primitive/Safe_.chs" #-}+++zher2 :: (Order) -> (Uplo) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zher2 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ zher2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 242 "src/Blas/Primitive/Safe_.chs" #-}+++chpr2 :: (Order) -> (Uplo) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> IO ()+chpr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ chpr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 244 "src/Blas/Primitive/Safe_.chs" #-}+++zhpr2 :: (Order) -> (Uplo) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> IO ()+zhpr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ zhpr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 246 "src/Blas/Primitive/Safe_.chs" #-}+++sgemm :: (Order) -> (Transpose) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+sgemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = CFloat a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ let {a12' = CFloat a12} in+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ sgemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 248 "src/Blas/Primitive/Safe_.chs" #-}+++dgemm :: (Order) -> (Transpose) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dgemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = CDouble a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ let {a12' = CDouble a12} in+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ dgemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 250 "src/Blas/Primitive/Safe_.chs" #-}+++cgemm :: (Order) -> (Transpose) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cgemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ withVoidPtr a7 $ \a7' ->+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ withVoidPtr a12 $ \a12' ->+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ cgemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 252 "src/Blas/Primitive/Safe_.chs" #-}+++zgemm :: (Order) -> (Transpose) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zgemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ withVoidPtr a7 $ \a7' ->+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ withVoidPtr a12 $ \a12' ->+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ zgemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 254 "src/Blas/Primitive/Safe_.chs" #-}+++ssymm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+ssymm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CFloat a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CFloat a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ ssymm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 256 "src/Blas/Primitive/Safe_.chs" #-}+++dsymm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dsymm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CDouble a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CDouble a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ dsymm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 258 "src/Blas/Primitive/Safe_.chs" #-}+++csymm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+csymm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ csymm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 260 "src/Blas/Primitive/Safe_.chs" #-}+++zsymm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zsymm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ zsymm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 262 "src/Blas/Primitive/Safe_.chs" #-}+++ssyrk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+ssyrk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CFloat a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CFloat a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ ssyrk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 264 "src/Blas/Primitive/Safe_.chs" #-}+++dsyrk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dsyrk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CDouble a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CDouble a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ dsyrk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 266 "src/Blas/Primitive/Safe_.chs" #-}+++csyrk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+csyrk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ withVoidPtr a9 $ \a9' ->+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ csyrk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 268 "src/Blas/Primitive/Safe_.chs" #-}+++zsyrk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zsyrk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ withVoidPtr a9 $ \a9' ->+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ zsyrk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 270 "src/Blas/Primitive/Safe_.chs" #-}+++ssyr2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+ssyr2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CFloat a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CFloat a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ ssyr2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 272 "src/Blas/Primitive/Safe_.chs" #-}+++dsyr2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dsyr2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CDouble a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CDouble a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ dsyr2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 274 "src/Blas/Primitive/Safe_.chs" #-}+++csyr2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+csyr2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ csyr2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 276 "src/Blas/Primitive/Safe_.chs" #-}+++zsyr2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zsyr2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ zsyr2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 278 "src/Blas/Primitive/Safe_.chs" #-}+++chemm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+chemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ chemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 280 "src/Blas/Primitive/Safe_.chs" #-}+++zhemm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zhemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ zhemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 282 "src/Blas/Primitive/Safe_.chs" #-}+++cherk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cherk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CFloat a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CFloat a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ cherk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 284 "src/Blas/Primitive/Safe_.chs" #-}+++zherk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zherk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CDouble a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CDouble a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ zherk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 286 "src/Blas/Primitive/Safe_.chs" #-}+++cher2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cher2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CFloat a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ cher2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 288 "src/Blas/Primitive/Safe_.chs" #-}+++zher2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zher2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CDouble a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ zher2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 290 "src/Blas/Primitive/Safe_.chs" #-}+++strmm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+strmm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CFloat a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ strmm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 292 "src/Blas/Primitive/Safe_.chs" #-}+++dtrmm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtrmm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CDouble a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ dtrmm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 294 "src/Blas/Primitive/Safe_.chs" #-}+++ctrmm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctrmm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ ctrmm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 296 "src/Blas/Primitive/Safe_.chs" #-}+++ztrmm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztrmm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ ztrmm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 298 "src/Blas/Primitive/Safe_.chs" #-}+++strsm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+strsm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CFloat a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ strsm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 300 "src/Blas/Primitive/Safe_.chs" #-}+++dtrsm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtrsm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CDouble a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ dtrsm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 302 "src/Blas/Primitive/Safe_.chs" #-}+++ctrsm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctrsm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ ctrsm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 304 "src/Blas/Primitive/Safe_.chs" #-}+++ztrsm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztrsm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ ztrsm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 306 "src/Blas/Primitive/Safe_.chs" #-}+++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sdsdot"+ sdsdot'_ :: (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO CFloat)))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dsdot"+ dsdot'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO CDouble))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sdot"+ sdot'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO CFloat))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ddot"+ ddot'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO CDouble))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cdotu_sub"+ cdotu_sub'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ())))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zdotu_sub"+ zdotu_sub'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ())))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cdotc_sub"+ cdotc_sub'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ())))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zdotc_sub"+ zdotc_sub'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ())))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_snrm2"+ snrm2'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO CFloat))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dnrm2"+ dnrm2'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO CDouble))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_scnrm2"+ scnrm2'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO CFloat))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dznrm2"+ dznrm2'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO CDouble))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sasum"+ sasum'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO CFloat))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dasum"+ dasum'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO CDouble))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_scasum"+ scasum'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO CFloat))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dzasum"+ dzasum'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO CDouble))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_isamax"+ isamax'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO BlasIndex))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_idamax"+ idamax'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO BlasIndex))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_icamax"+ icamax'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO BlasIndex))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_izamax"+ izamax'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO BlasIndex))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sswap"+ sswap'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dswap"+ dswap'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cswap"+ cswap'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zswap"+ zswap'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_scopy"+ scopy'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dcopy"+ dcopy'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ccopy"+ ccopy'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zcopy"+ zcopy'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_saxpy"+ saxpy'_ :: (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_daxpy"+ daxpy'_ :: (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_caxpy"+ caxpy'_ :: (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zaxpy"+ zaxpy'_ :: (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_srotg"+ srotg'_ :: ((Ptr CFloat) -> ((Ptr CFloat) -> ((Ptr CFloat) -> ((Ptr CFloat) -> (IO ())))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_drotg"+ drotg'_ :: ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> (IO ())))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_srotmg"+ srotmg'_ :: ((Ptr CFloat) -> ((Ptr CFloat) -> ((Ptr CFloat) -> (CFloat -> ((Ptr CFloat) -> (IO ()))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_drotmg"+ drotmg'_ :: ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> (CDouble -> ((Ptr CDouble) -> (IO ()))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_srot"+ srot'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> (CFloat -> (IO ()))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_drot"+ drot'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> (CDouble -> (IO ()))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_srotm"+ srotm'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (IO ())))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_drotm"+ drotm'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (IO ())))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sscal"+ sscal'_ :: (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dscal"+ dscal'_ :: (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cscal"+ cscal'_ :: (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_csscal"+ csscal'_ :: (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> (IO ())))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zscal"+ zscal'_ :: (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zdscal"+ zdscal'_ :: (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> (IO ())))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sgemv"+ sgemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dgemv"+ dgemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cgemv"+ cgemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zgemv"+ zgemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sgbmv"+ sgbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dgbmv"+ dgbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cgbmv"+ cgbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zgbmv"+ zgbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_strmv"+ strmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dtrmv"+ dtrmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ctrmv"+ ctrmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ztrmv"+ ztrmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_stbmv"+ stbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dtbmv"+ dtbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ctbmv"+ ctbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ztbmv"+ ztbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_stpmv"+ stpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dtpmv"+ dtpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ctpmv"+ ctpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ztpmv"+ ztpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_strsv"+ strsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dtrsv"+ dtrsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ctrsv"+ ctrsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ztrsv"+ ztrsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_stbsv"+ stbsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dtbsv"+ dtbsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ctbsv"+ ctbsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ztbsv"+ ztbsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_stpsv"+ stpsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dtpsv"+ dtpsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ctpsv"+ ctpsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ztpsv"+ ztpsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ssymv"+ ssymv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dsymv"+ dsymv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ssbmv"+ ssbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dsbmv"+ dsbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sspmv"+ sspmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dspmv"+ dspmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sger"+ sger'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dger"+ dger'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ssyr"+ ssyr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dsyr"+ dsyr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ssyr2"+ ssyr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dsyr2"+ dsyr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sspr"+ sspr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (IO ()))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dspr"+ dspr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (IO ()))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sspr2"+ sspr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dspr2"+ dspr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_chemv"+ chemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zhemv"+ zhemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_chbmv"+ chbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zhbmv"+ zhbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_chpmv"+ chpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zhpmv"+ zhpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cgeru"+ cgeru'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zgeru"+ zgeru'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cgerc"+ cgerc'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zgerc"+ zgerc'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cher"+ cher'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zher"+ zher'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_chpr"+ chpr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ()))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zhpr"+ zhpr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ()))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cher2"+ cher2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zher2"+ zher2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_chpr2"+ chpr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zhpr2"+ zhpr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ()))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_sgemm"+ sgemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dgemm"+ dgemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cgemm"+ cgemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zgemm"+ zgemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ssymm"+ ssymm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dsymm"+ dsymm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_csymm"+ csymm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zsymm"+ zsymm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ssyrk"+ ssyrk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dsyrk"+ dsyrk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_csyrk"+ csyrk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zsyrk"+ zsyrk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ssyr2k"+ ssyr2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dsyr2k"+ dsyr2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_csyr2k"+ csyr2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zsyr2k"+ zsyr2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_chemm"+ chemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zhemm"+ zhemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cherk"+ cherk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zherk"+ zherk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_cher2k"+ cher2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_zher2k"+ zher2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_strmm"+ strmm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dtrmm"+ dtrmm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ctrmm"+ ctrmm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ztrmm"+ ztrmm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_strsm"+ strsm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_dtrsm"+ dtrsm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ctrsm"+ ctrsm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall safe "src/Blas/Primitive/Safe_.chs.h cblas_ztrsm"+ ztrsm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))
+ src/Blas/Primitive/Types.hs view
@@ -0,0 +1,79 @@+{-|++Stability: experimental++Enumerations used by the Blas interface.++-}+module Blas.Primitive.Types+ ( Order(..)+ , Transpose(..)+ , Uplo(..)+ , Diag(..)+ , Side(..)+ ) where+import Prelude hiding (Either(Left, Right))+import Data.Ix (Ix)++-- | Memory layout of a matrix.+data Order = RowMajor -- ^ Row-major order.+ | ColMajor -- ^ Column-major order.+ deriving (Bounded, Eq, Ix, Ord, Read, Show)++instance Enum Order where+ fromEnum RowMajor = 101+ fromEnum ColMajor = 102+ toEnum 101 = RowMajor+ toEnum 102 = ColMajor+ toEnum x = error $ "Order.toEnum: Cannot match " ++ show x++-- | Operation applied to a matrix.+data Transpose = NoTrans -- ^ No operation.+ | Trans -- ^ Transposition.+ | ConjTrans -- ^ Conjugation and transposition.+ deriving (Bounded, Eq, Ix, Ord, Read, Show)++instance Enum Transpose where+ fromEnum NoTrans = 111+ fromEnum Trans = 112+ fromEnum ConjTrans = 113+ toEnum 111 = NoTrans+ toEnum 112 = Trans+ toEnum 113 = ConjTrans+ toEnum x = error $ "Transpose.toEnum: Cannot match " ++ show x++-- | Specifies which triangular part of a matrix is used.+data Uplo = Upper -- ^ Upper triangular part.+ | Lower -- ^ Lower triangular part.+ deriving (Bounded, Eq, Ix, Ord, Read, Show)++instance Enum Uplo where+ fromEnum Upper = 121+ fromEnum Lower = 122+ toEnum 121 = Upper+ toEnum 122 = Lower+ toEnum x = error $ "Uplo.toEnum: Cannot match " ++ show x++-- | Whether a matrix is unit triangular.+data Diag = NonUnit -- ^ Not unit triangular.+ | Unit -- ^ Unit triangular.+ deriving (Bounded, Eq, Ix, Ord, Read, Show)++instance Enum Diag where+ fromEnum NonUnit = 131+ fromEnum Unit = 132+ toEnum 131 = NonUnit+ toEnum 132 = Unit+ toEnum x = error $ "Diag.toEnum: Cannot match " ++ show x++-- | The side that a matrix appears in the product.+data Side = Left -- ^ On the left side.+ | Right -- ^ On the right side.+ deriving (Bounded, Eq, Ix, Ord, Read, Show)++instance Enum Side where+ fromEnum Left = 141+ fromEnum Right = 142+ toEnum 141 = Left+ toEnum 142 = Right+ toEnum x = error $ "Side.toEnum: Cannot match " ++ show x
+ src/Blas/Primitive/Unsafe.hs view
@@ -0,0 +1,2840 @@+-- GENERATED by C->Haskell Compiler, version 0.17.2 Crystal Seed, 24 Jan 2009 (Haskell)+-- Edit the ORIGNAL .chs file instead!+++{-# LINE 1 "src/Blas/Primitive/Unsafe_.chs" #-}+{- This file is auto-generated. Do not edit directly. -}+{-# LANGUAGE ForeignFunctionInterface #-}+{-|++Stability: stable++Foreign function interface to Blas. These functions use unsafe+foreign calls. Refer to the GHC documentation for more information regarding+appropriate use of safe and unsafe foreign calls.++-}+module Blas.Primitive.Unsafe (sdsdot, dsdot, sdot, ddot, cdotu_sub, zdotu_sub, cdotc_sub, zdotc_sub, snrm2, dnrm2, scnrm2, dznrm2, sasum, dasum, scasum, dzasum, isamax, idamax, icamax, izamax, sswap, dswap, cswap, zswap, scopy, dcopy, ccopy, zcopy, saxpy, daxpy, caxpy, zaxpy, srotg, drotg, srotmg, drotmg, srot, drot, srotm, drotm, sscal, dscal, cscal, csscal, zscal, zdscal, sgemv, dgemv, cgemv, zgemv, sgbmv, dgbmv, cgbmv, zgbmv, strmv, dtrmv, ctrmv, ztrmv, stbmv, dtbmv, ctbmv, ztbmv, stpmv, dtpmv, ctpmv, ztpmv, strsv, dtrsv, ctrsv, ztrsv, stbsv, dtbsv, ctbsv, ztbsv, stpsv, dtpsv, ctpsv, ztpsv, ssymv, dsymv, ssbmv, dsbmv, sspmv, dspmv, sger, dger, ssyr, dsyr, ssyr2, dsyr2, sspr, dspr, sspr2, dspr2, chemv, zhemv, chbmv, zhbmv, chpmv, zhpmv, cgeru, zgeru, cgerc, zgerc, cher, zher, chpr, zhpr, cher2, zher2, chpr2, zhpr2, sgemm, dgemm, cgemm, zgemm, ssymm, dsymm, csymm, zsymm, ssyrk, dsyrk, csyrk, zsyrk, ssyr2k, dsyr2k, csyr2k, zsyr2k, chemm, zhemm, cherk, zherk, cher2k, zher2k, strmm, dtrmm, ctrmm, ztrmm, strsm, dtrsm, ctrsm, ztrsm) where+import Prelude hiding (Either(Left, Right))+import Data.Complex (Complex)+import Foreign (Ptr, castPtr)+import Foreign.C.Types+import Foreign.Storable.Complex ()+import Blas.Primitive.Types+import BlasCTypes+import FFI++++sdsdot :: (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ((Float))+sdsdot a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = CFloat a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ sdsdot'_ a1' a2' a3' a4' a5' a6' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 24 "src/Blas/Primitive/Unsafe_.chs" #-}+++dsdot :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ((Double))+dsdot a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ dsdot'_ a1' a2' a3' a4' a5' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 26 "src/Blas/Primitive/Unsafe_.chs" #-}+++sdot :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ((Float))+sdot a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ sdot'_ a1' a2' a3' a4' a5' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 28 "src/Blas/Primitive/Unsafe_.chs" #-}+++ddot :: (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ((Double))+ddot a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ ddot'_ a1' a2' a3' a4' a5' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 30 "src/Blas/Primitive/Unsafe_.chs" #-}+++cdotu_sub :: (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> IO ()+cdotu_sub a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ cdotu_sub'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 32 "src/Blas/Primitive/Unsafe_.chs" #-}+++zdotu_sub :: (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> IO ()+zdotu_sub a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ zdotu_sub'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 34 "src/Blas/Primitive/Unsafe_.chs" #-}+++cdotc_sub :: (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> IO ()+cdotc_sub a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ cdotc_sub'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 36 "src/Blas/Primitive/Unsafe_.chs" #-}+++zdotc_sub :: (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> IO ()+zdotc_sub a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ zdotc_sub'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 38 "src/Blas/Primitive/Unsafe_.chs" #-}+++snrm2 :: (Int) -> (Ptr Float) -> (Int) -> IO ((Float))+snrm2 a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ snrm2'_ a1' a2' a3' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 40 "src/Blas/Primitive/Unsafe_.chs" #-}+++dnrm2 :: (Int) -> (Ptr Double) -> (Int) -> IO ((Double))+dnrm2 a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ dnrm2'_ a1' a2' a3' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 42 "src/Blas/Primitive/Unsafe_.chs" #-}+++scnrm2 :: (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ((Float))+scnrm2 a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ scnrm2'_ a1' a2' a3' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 44 "src/Blas/Primitive/Unsafe_.chs" #-}+++dznrm2 :: (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ((Double))+dznrm2 a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ dznrm2'_ a1' a2' a3' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 46 "src/Blas/Primitive/Unsafe_.chs" #-}+++sasum :: (Int) -> (Ptr Float) -> (Int) -> IO ((Float))+sasum a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ sasum'_ a1' a2' a3' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 48 "src/Blas/Primitive/Unsafe_.chs" #-}+++dasum :: (Int) -> (Ptr Double) -> (Int) -> IO ((Double))+dasum a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ dasum'_ a1' a2' a3' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 50 "src/Blas/Primitive/Unsafe_.chs" #-}+++scasum :: (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ((Float))+scasum a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ scasum'_ a1' a2' a3' >>= \res ->+ let {res' = fromCFloat res} in+ return (res')++{-# LINE 52 "src/Blas/Primitive/Unsafe_.chs" #-}+++dzasum :: (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ((Double))+dzasum a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ dzasum'_ a1' a2' a3' >>= \res ->+ let {res' = fromCDouble res} in+ return (res')++{-# LINE 54 "src/Blas/Primitive/Unsafe_.chs" #-}+++isamax :: (Int) -> (Ptr Float) -> (Int) -> IO ((Int))+isamax a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ isamax'_ a1' a2' a3' >>= \res ->+ let {res' = fromIntegral res} in+ return (res')++{-# LINE 56 "src/Blas/Primitive/Unsafe_.chs" #-}+++idamax :: (Int) -> (Ptr Double) -> (Int) -> IO ((Int))+idamax a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ idamax'_ a1' a2' a3' >>= \res ->+ let {res' = fromIntegral res} in+ return (res')++{-# LINE 58 "src/Blas/Primitive/Unsafe_.chs" #-}+++icamax :: (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ((Int))+icamax a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ icamax'_ a1' a2' a3' >>= \res ->+ let {res' = fromIntegral res} in+ return (res')++{-# LINE 60 "src/Blas/Primitive/Unsafe_.chs" #-}+++izamax :: (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ((Int))+izamax a1 a2 a3 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ izamax'_ a1' a2' a3' >>= \res ->+ let {res' = fromIntegral res} in+ return (res')++{-# LINE 62 "src/Blas/Primitive/Unsafe_.chs" #-}+++sswap :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+sswap a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ sswap'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 64 "src/Blas/Primitive/Unsafe_.chs" #-}+++dswap :: (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dswap a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ dswap'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 66 "src/Blas/Primitive/Unsafe_.chs" #-}+++cswap :: (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cswap a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ cswap'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 68 "src/Blas/Primitive/Unsafe_.chs" #-}+++zswap :: (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zswap a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ zswap'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 70 "src/Blas/Primitive/Unsafe_.chs" #-}+++scopy :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+scopy a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ scopy'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 72 "src/Blas/Primitive/Unsafe_.chs" #-}+++dcopy :: (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dcopy a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ dcopy'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 74 "src/Blas/Primitive/Unsafe_.chs" #-}+++ccopy :: (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ccopy a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ ccopy'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 76 "src/Blas/Primitive/Unsafe_.chs" #-}+++zcopy :: (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zcopy a1 a2 a3 a4 a5 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ zcopy'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 78 "src/Blas/Primitive/Unsafe_.chs" #-}+++saxpy :: (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+saxpy a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = CFloat a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ saxpy'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 80 "src/Blas/Primitive/Unsafe_.chs" #-}+++daxpy :: (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+daxpy a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = CDouble a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ daxpy'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 82 "src/Blas/Primitive/Unsafe_.chs" #-}+++caxpy :: (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+caxpy a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ withVoidPtr a2 $ \a2' ->+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ caxpy'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 84 "src/Blas/Primitive/Unsafe_.chs" #-}+++zaxpy :: (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zaxpy a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ withVoidPtr a2 $ \a2' ->+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ zaxpy'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 86 "src/Blas/Primitive/Unsafe_.chs" #-}+++srotg :: (Ptr Float) -> (Ptr Float) -> (Ptr Float) -> (Ptr Float) -> IO ()+srotg a1 a2 a3 a4 =+ let {a1' = castPtr a1} in+ let {a2' = castPtr a2} in+ let {a3' = castPtr a3} in+ let {a4' = castPtr a4} in+ srotg'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 88 "src/Blas/Primitive/Unsafe_.chs" #-}+++drotg :: (Ptr Double) -> (Ptr Double) -> (Ptr Double) -> (Ptr Double) -> IO ()+drotg a1 a2 a3 a4 =+ let {a1' = castPtr a1} in+ let {a2' = castPtr a2} in+ let {a3' = castPtr a3} in+ let {a4' = castPtr a4} in+ drotg'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 90 "src/Blas/Primitive/Unsafe_.chs" #-}+++srotmg :: (Ptr Float) -> (Ptr Float) -> (Ptr Float) -> (Float) -> (Ptr Float) -> IO ()+srotmg a1 a2 a3 a4 a5 =+ let {a1' = castPtr a1} in+ let {a2' = castPtr a2} in+ let {a3' = castPtr a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ srotmg'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 92 "src/Blas/Primitive/Unsafe_.chs" #-}+++drotmg :: (Ptr Double) -> (Ptr Double) -> (Ptr Double) -> (Double) -> (Ptr Double) -> IO ()+drotmg a1 a2 a3 a4 a5 =+ let {a1' = castPtr a1} in+ let {a2' = castPtr a2} in+ let {a3' = castPtr a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ drotmg'_ a1' a2' a3' a4' a5' >>+ return ()++{-# LINE 94 "src/Blas/Primitive/Unsafe_.chs" #-}+++srot :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Float) -> IO ()+srot a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CFloat a6} in+ let {a7' = CFloat a7} in+ srot'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 96 "src/Blas/Primitive/Unsafe_.chs" #-}+++drot :: (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Double) -> IO ()+drot a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CDouble a6} in+ let {a7' = CDouble a7} in+ drot'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 98 "src/Blas/Primitive/Unsafe_.chs" #-}+++srotm :: (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> IO ()+srotm a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ srotm'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 100 "src/Blas/Primitive/Unsafe_.chs" #-}+++drotm :: (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> IO ()+drotm a1 a2 a3 a4 a5 a6 =+ let {a1' = fromIntegral a1} in+ let {a2' = castPtr a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = castPtr a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ drotm'_ a1' a2' a3' a4' a5' a6' >>+ return ()++{-# LINE 102 "src/Blas/Primitive/Unsafe_.chs" #-}+++sscal :: (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+sscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ let {a2' = CFloat a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ sscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 104 "src/Blas/Primitive/Unsafe_.chs" #-}+++dscal :: (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ let {a2' = CDouble a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ dscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 106 "src/Blas/Primitive/Unsafe_.chs" #-}+++cscal :: (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ withVoidPtr a2 $ \a2' ->+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ cscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 108 "src/Blas/Primitive/Unsafe_.chs" #-}+++csscal :: (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+csscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ let {a2' = CFloat a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ csscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 110 "src/Blas/Primitive/Unsafe_.chs" #-}+++zscal :: (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ withVoidPtr a2 $ \a2' ->+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ zscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 112 "src/Blas/Primitive/Unsafe_.chs" #-}+++zdscal :: (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zdscal a1 a2 a3 a4 =+ let {a1' = fromIntegral a1} in+ let {a2' = CDouble a2} in+ let {a3' = castPtr a3} in+ let {a4' = fromIntegral a4} in+ zdscal'_ a1' a2' a3' a4' >>+ return ()++{-# LINE 114 "src/Blas/Primitive/Unsafe_.chs" #-}+++sgemv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+sgemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = CFloat a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = CFloat a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ sgemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 116 "src/Blas/Primitive/Unsafe_.chs" #-}+++dgemv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dgemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = CDouble a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = CDouble a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ dgemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 118 "src/Blas/Primitive/Unsafe_.chs" #-}+++cgemv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cgemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ withVoidPtr a5 $ \a5' ->+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ withVoidPtr a10 $ \a10' ->+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ cgemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 120 "src/Blas/Primitive/Unsafe_.chs" #-}+++zgemv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zgemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ withVoidPtr a5 $ \a5' ->+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ withVoidPtr a10 $ \a10' ->+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ zgemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 122 "src/Blas/Primitive/Unsafe_.chs" #-}+++sgbmv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+sgbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = CFloat a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ let {a12' = CFloat a12} in+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ sgbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 124 "src/Blas/Primitive/Unsafe_.chs" #-}+++dgbmv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dgbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = CDouble a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ let {a12' = CDouble a12} in+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ dgbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 126 "src/Blas/Primitive/Unsafe_.chs" #-}+++cgbmv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cgbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ withVoidPtr a7 $ \a7' ->+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ withVoidPtr a12 $ \a12' ->+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ cgbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 128 "src/Blas/Primitive/Unsafe_.chs" #-}+++zgbmv :: (Order) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zgbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ withVoidPtr a7 $ \a7' ->+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ withVoidPtr a12 $ \a12' ->+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ zgbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 130 "src/Blas/Primitive/Unsafe_.chs" #-}+++strmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+strmv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ strmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 132 "src/Blas/Primitive/Unsafe_.chs" #-}+++dtrmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtrmv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ dtrmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 134 "src/Blas/Primitive/Unsafe_.chs" #-}+++ctrmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctrmv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ ctrmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 136 "src/Blas/Primitive/Unsafe_.chs" #-}+++ztrmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztrmv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ ztrmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 138 "src/Blas/Primitive/Unsafe_.chs" #-}+++stbmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+stbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ stbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 140 "src/Blas/Primitive/Unsafe_.chs" #-}+++dtbmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ dtbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 142 "src/Blas/Primitive/Unsafe_.chs" #-}+++ctbmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ ctbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 144 "src/Blas/Primitive/Unsafe_.chs" #-}+++ztbmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ ztbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 146 "src/Blas/Primitive/Unsafe_.chs" #-}+++stpmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Float) -> (Ptr Float) -> (Int) -> IO ()+stpmv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ stpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 148 "src/Blas/Primitive/Unsafe_.chs" #-}+++dtpmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Double) -> (Ptr Double) -> (Int) -> IO ()+dtpmv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ dtpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 150 "src/Blas/Primitive/Unsafe_.chs" #-}+++ctpmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Float)) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctpmv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ ctpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 152 "src/Blas/Primitive/Unsafe_.chs" #-}+++ztpmv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Double)) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztpmv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ ztpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 154 "src/Blas/Primitive/Unsafe_.chs" #-}+++strsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+strsv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ strsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 156 "src/Blas/Primitive/Unsafe_.chs" #-}+++dtrsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtrsv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ dtrsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 158 "src/Blas/Primitive/Unsafe_.chs" #-}+++ctrsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctrsv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ ctrsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 160 "src/Blas/Primitive/Unsafe_.chs" #-}+++ztrsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztrsv a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ ztrsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 162 "src/Blas/Primitive/Unsafe_.chs" #-}+++stbsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+stbsv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ stbsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 164 "src/Blas/Primitive/Unsafe_.chs" #-}+++dtbsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtbsv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ dtbsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 166 "src/Blas/Primitive/Unsafe_.chs" #-}+++ctbsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctbsv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ ctbsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 168 "src/Blas/Primitive/Unsafe_.chs" #-}+++ztbsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztbsv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ ztbsv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 170 "src/Blas/Primitive/Unsafe_.chs" #-}+++stpsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Float) -> (Ptr Float) -> (Int) -> IO ()+stpsv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ stpsv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 172 "src/Blas/Primitive/Unsafe_.chs" #-}+++dtpsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr Double) -> (Ptr Double) -> (Int) -> IO ()+dtpsv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ dtpsv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 174 "src/Blas/Primitive/Unsafe_.chs" #-}+++ctpsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Float)) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctpsv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ ctpsv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 176 "src/Blas/Primitive/Unsafe_.chs" #-}+++ztpsv :: (Order) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Ptr (Complex Double)) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztpsv a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = castPtr a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ ztpsv'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 178 "src/Blas/Primitive/Unsafe_.chs" #-}+++ssymv :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+ssymv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CFloat a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ ssymv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 180 "src/Blas/Primitive/Unsafe_.chs" #-}+++dsymv :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dsymv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CDouble a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ dsymv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 182 "src/Blas/Primitive/Unsafe_.chs" #-}+++ssbmv :: (Order) -> (Uplo) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+ssbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = CFloat a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = CFloat a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ ssbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 184 "src/Blas/Primitive/Unsafe_.chs" #-}+++dsbmv :: (Order) -> (Uplo) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dsbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = CDouble a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = CDouble a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ dsbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 186 "src/Blas/Primitive/Unsafe_.chs" #-}+++sspmv :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+sspmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CFloat a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ sspmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 188 "src/Blas/Primitive/Unsafe_.chs" #-}+++dspmv :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dspmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CDouble a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ dspmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 190 "src/Blas/Primitive/Unsafe_.chs" #-}+++sger :: (Order) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+sger a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ sger'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 192 "src/Blas/Primitive/Unsafe_.chs" #-}+++dger :: (Order) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dger a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ dger'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 194 "src/Blas/Primitive/Unsafe_.chs" #-}+++ssyr :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+ssyr a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ ssyr'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 196 "src/Blas/Primitive/Unsafe_.chs" #-}+++dsyr :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dsyr a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ dsyr'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 198 "src/Blas/Primitive/Unsafe_.chs" #-}+++ssyr2 :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+ssyr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ ssyr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 200 "src/Blas/Primitive/Unsafe_.chs" #-}+++dsyr2 :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dsyr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ dsyr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 202 "src/Blas/Primitive/Unsafe_.chs" #-}+++sspr :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> IO ()+sspr a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ sspr'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 204 "src/Blas/Primitive/Unsafe_.chs" #-}+++dspr :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> IO ()+dspr a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ dspr'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 206 "src/Blas/Primitive/Unsafe_.chs" #-}+++sspr2 :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Ptr Float) -> IO ()+sspr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ sspr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 208 "src/Blas/Primitive/Unsafe_.chs" #-}+++dspr2 :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Ptr Double) -> IO ()+dspr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ dspr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 210 "src/Blas/Primitive/Unsafe_.chs" #-}+++chemv :: (Order) -> (Uplo) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+chemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ withVoidPtr a9 $ \a9' ->+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ chemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 212 "src/Blas/Primitive/Unsafe_.chs" #-}+++zhemv :: (Order) -> (Uplo) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zhemv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ withVoidPtr a9 $ \a9' ->+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ zhemv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 214 "src/Blas/Primitive/Unsafe_.chs" #-}+++chbmv :: (Order) -> (Uplo) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+chbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ withVoidPtr a5 $ \a5' ->+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ withVoidPtr a10 $ \a10' ->+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ chbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 216 "src/Blas/Primitive/Unsafe_.chs" #-}+++zhbmv :: (Order) -> (Uplo) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zhbmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = fromIntegral a4} in+ withVoidPtr a5 $ \a5' ->+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ withVoidPtr a10 $ \a10' ->+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ zhbmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 218 "src/Blas/Primitive/Unsafe_.chs" #-}+++chpmv :: (Order) -> (Uplo) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+chpmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ chpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 220 "src/Blas/Primitive/Unsafe_.chs" #-}+++zhpmv :: (Order) -> (Uplo) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zhpmv a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = castPtr a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ zhpmv'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 222 "src/Blas/Primitive/Unsafe_.chs" #-}+++cgeru :: (Order) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cgeru a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ cgeru'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 224 "src/Blas/Primitive/Unsafe_.chs" #-}+++zgeru :: (Order) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zgeru a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ zgeru'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 226 "src/Blas/Primitive/Unsafe_.chs" #-}+++cgerc :: (Order) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cgerc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ cgerc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 228 "src/Blas/Primitive/Unsafe_.chs" #-}+++zgerc :: (Order) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zgerc a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = fromIntegral a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ zgerc'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 230 "src/Blas/Primitive/Unsafe_.chs" #-}+++cher :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cher a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ cher'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 232 "src/Blas/Primitive/Unsafe_.chs" #-}+++zher :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zher a1 a2 a3 a4 a5 a6 a7 a8 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ zher'_ a1' a2' a3' a4' a5' a6' a7' a8' >>+ return ()++{-# LINE 234 "src/Blas/Primitive/Unsafe_.chs" #-}+++chpr :: (Order) -> (Uplo) -> (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> IO ()+chpr a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CFloat a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ chpr'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 236 "src/Blas/Primitive/Unsafe_.chs" #-}+++zhpr :: (Order) -> (Uplo) -> (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> IO ()+zhpr a1 a2 a3 a4 a5 a6 a7 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ let {a4' = CDouble a4} in+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ zhpr'_ a1' a2' a3' a4' a5' a6' a7' >>+ return ()++{-# LINE 238 "src/Blas/Primitive/Unsafe_.chs" #-}+++cher2 :: (Order) -> (Uplo) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cher2 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ cher2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 240 "src/Blas/Primitive/Unsafe_.chs" #-}+++zher2 :: (Order) -> (Uplo) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zher2 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ zher2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>+ return ()++{-# LINE 242 "src/Blas/Primitive/Unsafe_.chs" #-}+++chpr2 :: (Order) -> (Uplo) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> IO ()+chpr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ chpr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 244 "src/Blas/Primitive/Unsafe_.chs" #-}+++zhpr2 :: (Order) -> (Uplo) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> IO ()+zhpr2 a1 a2 a3 a4 a5 a6 a7 a8 a9 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = fromIntegral a3} in+ withVoidPtr a4 $ \a4' ->+ let {a5' = castPtr a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ zhpr2'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>+ return ()++{-# LINE 246 "src/Blas/Primitive/Unsafe_.chs" #-}+++sgemm :: (Order) -> (Transpose) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+sgemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = CFloat a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ let {a12' = CFloat a12} in+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ sgemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 248 "src/Blas/Primitive/Unsafe_.chs" #-}+++dgemm :: (Order) -> (Transpose) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dgemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = CDouble a7} in+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ let {a12' = CDouble a12} in+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ dgemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 250 "src/Blas/Primitive/Unsafe_.chs" #-}+++cgemm :: (Order) -> (Transpose) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cgemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ withVoidPtr a7 $ \a7' ->+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ withVoidPtr a12 $ \a12' ->+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ cgemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 252 "src/Blas/Primitive/Unsafe_.chs" #-}+++zgemm :: (Order) -> (Transpose) -> (Transpose) -> (Int) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zgemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = fromIntegral a6} in+ withVoidPtr a7 $ \a7' ->+ let {a8' = castPtr a8} in+ let {a9' = fromIntegral a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ withVoidPtr a12 $ \a12' ->+ let {a13' = castPtr a13} in+ let {a14' = fromIntegral a14} in+ zgemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>+ return ()++{-# LINE 254 "src/Blas/Primitive/Unsafe_.chs" #-}+++ssymm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+ssymm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CFloat a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CFloat a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ ssymm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 256 "src/Blas/Primitive/Unsafe_.chs" #-}+++dsymm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dsymm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CDouble a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CDouble a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ dsymm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 258 "src/Blas/Primitive/Unsafe_.chs" #-}+++csymm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+csymm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ csymm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 260 "src/Blas/Primitive/Unsafe_.chs" #-}+++zsymm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zsymm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ zsymm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 262 "src/Blas/Primitive/Unsafe_.chs" #-}+++ssyrk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+ssyrk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CFloat a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CFloat a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ ssyrk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 264 "src/Blas/Primitive/Unsafe_.chs" #-}+++dsyrk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dsyrk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CDouble a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CDouble a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ dsyrk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 266 "src/Blas/Primitive/Unsafe_.chs" #-}+++csyrk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+csyrk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ withVoidPtr a9 $ \a9' ->+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ csyrk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 268 "src/Blas/Primitive/Unsafe_.chs" #-}+++zsyrk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zsyrk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ withVoidPtr a9 $ \a9' ->+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ zsyrk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 270 "src/Blas/Primitive/Unsafe_.chs" #-}+++ssyr2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> IO ()+ssyr2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CFloat a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CFloat a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ ssyr2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 272 "src/Blas/Primitive/Unsafe_.chs" #-}+++dsyr2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> IO ()+dsyr2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CDouble a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CDouble a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ dsyr2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 274 "src/Blas/Primitive/Unsafe_.chs" #-}+++csyr2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+csyr2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ csyr2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 276 "src/Blas/Primitive/Unsafe_.chs" #-}+++zsyr2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zsyr2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ zsyr2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 278 "src/Blas/Primitive/Unsafe_.chs" #-}+++chemm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+chemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ chemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 280 "src/Blas/Primitive/Unsafe_.chs" #-}+++zhemm :: (Order) -> (Side) -> (Uplo) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zhemm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ withVoidPtr a11 $ \a11' ->+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ zhemm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 282 "src/Blas/Primitive/Unsafe_.chs" #-}+++cherk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cherk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CFloat a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CFloat a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ cherk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 284 "src/Blas/Primitive/Unsafe_.chs" #-}+++zherk :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zherk a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ let {a6' = CDouble a6} in+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = CDouble a9} in+ let {a10' = castPtr a10} in+ let {a11' = fromIntegral a11} in+ zherk'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' >>+ return ()++{-# LINE 286 "src/Blas/Primitive/Unsafe_.chs" #-}+++cher2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> (Float) -> (Ptr (Complex Float)) -> (Int) -> IO ()+cher2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CFloat a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ cher2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 288 "src/Blas/Primitive/Unsafe_.chs" #-}+++zher2k :: (Order) -> (Uplo) -> (Transpose) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> (Double) -> (Ptr (Complex Double)) -> (Int) -> IO ()+zher2k a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = fromIntegral a4} in+ let {a5' = fromIntegral a5} in+ withVoidPtr a6 $ \a6' ->+ let {a7' = castPtr a7} in+ let {a8' = fromIntegral a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = CDouble a11} in+ let {a12' = castPtr a12} in+ let {a13' = fromIntegral a13} in+ zher2k'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' >>+ return ()++{-# LINE 290 "src/Blas/Primitive/Unsafe_.chs" #-}+++strmm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+strmm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CFloat a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ strmm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 292 "src/Blas/Primitive/Unsafe_.chs" #-}+++dtrmm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtrmm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CDouble a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ dtrmm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 294 "src/Blas/Primitive/Unsafe_.chs" #-}+++ctrmm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctrmm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ ctrmm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 296 "src/Blas/Primitive/Unsafe_.chs" #-}+++ztrmm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztrmm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ ztrmm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 298 "src/Blas/Primitive/Unsafe_.chs" #-}+++strsm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Float) -> (Ptr Float) -> (Int) -> (Ptr Float) -> (Int) -> IO ()+strsm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CFloat a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ strsm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 300 "src/Blas/Primitive/Unsafe_.chs" #-}+++dtrsm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Double) -> (Ptr Double) -> (Int) -> (Ptr Double) -> (Int) -> IO ()+dtrsm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ let {a8' = CDouble a8} in+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ dtrsm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 302 "src/Blas/Primitive/Unsafe_.chs" #-}+++ctrsm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Complex Float) -> (Ptr (Complex Float)) -> (Int) -> (Ptr (Complex Float)) -> (Int) -> IO ()+ctrsm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ ctrsm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 304 "src/Blas/Primitive/Unsafe_.chs" #-}+++ztrsm :: (Order) -> (Side) -> (Uplo) -> (Transpose) -> (Diag) -> (Int) -> (Int) -> (Complex Double) -> (Ptr (Complex Double)) -> (Int) -> (Ptr (Complex Double)) -> (Int) -> IO ()+ztrsm a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 =+ let {a1' = toCEnum a1} in+ let {a2' = toCEnum a2} in+ let {a3' = toCEnum a3} in+ let {a4' = toCEnum a4} in+ let {a5' = toCEnum a5} in+ let {a6' = fromIntegral a6} in+ let {a7' = fromIntegral a7} in+ withVoidPtr a8 $ \a8' ->+ let {a9' = castPtr a9} in+ let {a10' = fromIntegral a10} in+ let {a11' = castPtr a11} in+ let {a12' = fromIntegral a12} in+ ztrsm'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>+ return ()++{-# LINE 306 "src/Blas/Primitive/Unsafe_.chs" #-}+++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sdsdot"+ sdsdot'_ :: (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO CFloat)))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dsdot"+ dsdot'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO CDouble))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sdot"+ sdot'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO CFloat))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ddot"+ ddot'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO CDouble))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cdotu_sub"+ cdotu_sub'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ())))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zdotu_sub"+ zdotu_sub'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ())))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cdotc_sub"+ cdotc_sub'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ())))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zdotc_sub"+ zdotc_sub'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ())))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_snrm2"+ snrm2'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO CFloat))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dnrm2"+ dnrm2'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO CDouble))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_scnrm2"+ scnrm2'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO CFloat))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dznrm2"+ dznrm2'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO CDouble))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sasum"+ sasum'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO CFloat))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dasum"+ dasum'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO CDouble))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_scasum"+ scasum'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO CFloat))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dzasum"+ dzasum'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO CDouble))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_isamax"+ isamax'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO BlasIndex))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_idamax"+ idamax'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO BlasIndex))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_icamax"+ icamax'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO BlasIndex))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_izamax"+ izamax'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO BlasIndex))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sswap"+ sswap'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dswap"+ dswap'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cswap"+ cswap'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zswap"+ zswap'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_scopy"+ scopy'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dcopy"+ dcopy'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ccopy"+ ccopy'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zcopy"+ zcopy'_ :: (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_saxpy"+ saxpy'_ :: (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_daxpy"+ daxpy'_ :: (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_caxpy"+ caxpy'_ :: (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zaxpy"+ zaxpy'_ :: (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_srotg"+ srotg'_ :: ((Ptr CFloat) -> ((Ptr CFloat) -> ((Ptr CFloat) -> ((Ptr CFloat) -> (IO ())))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_drotg"+ drotg'_ :: ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> (IO ())))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_srotmg"+ srotmg'_ :: ((Ptr CFloat) -> ((Ptr CFloat) -> ((Ptr CFloat) -> (CFloat -> ((Ptr CFloat) -> (IO ()))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_drotmg"+ drotmg'_ :: ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> (CDouble -> ((Ptr CDouble) -> (IO ()))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_srot"+ srot'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> (CFloat -> (IO ()))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_drot"+ drot'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> (CDouble -> (IO ()))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_srotm"+ srotm'_ :: (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (IO ())))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_drotm"+ drotm'_ :: (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (IO ())))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sscal"+ sscal'_ :: (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dscal"+ dscal'_ :: (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cscal"+ cscal'_ :: (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_csscal"+ csscal'_ :: (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> (IO ())))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zscal"+ zscal'_ :: (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zdscal"+ zdscal'_ :: (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> (IO ())))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sgemv"+ sgemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dgemv"+ dgemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cgemv"+ cgemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zgemv"+ zgemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sgbmv"+ sgbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dgbmv"+ dgbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cgbmv"+ cgbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zgbmv"+ zgbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_strmv"+ strmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dtrmv"+ dtrmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ctrmv"+ ctrmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ztrmv"+ ztrmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_stbmv"+ stbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dtbmv"+ dtbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ctbmv"+ ctbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ztbmv"+ ztbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_stpmv"+ stpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dtpmv"+ dtpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ctpmv"+ ctpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ztpmv"+ ztpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_strsv"+ strsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dtrsv"+ dtrsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ctrsv"+ ctrsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ztrsv"+ ztrsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_stbsv"+ stbsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dtbsv"+ dtbsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ctbsv"+ ctbsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ztbsv"+ ztbsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_stpsv"+ stpsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CFloat) -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dtpsv"+ dtpsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr CDouble) -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ctpsv"+ ctpsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ztpsv"+ ztpsv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ssymv"+ ssymv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dsymv"+ dsymv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ssbmv"+ ssbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dsbmv"+ dsbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sspmv"+ sspmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dspmv"+ dspmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sger"+ sger'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dger"+ dger'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ssyr"+ ssyr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dsyr"+ dsyr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ssyr2"+ ssyr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dsyr2"+ dsyr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sspr"+ sspr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (IO ()))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dspr"+ dspr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (IO ()))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sspr2"+ sspr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dspr2"+ dspr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_chemv"+ chemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zhemv"+ zhemv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_chbmv"+ chbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zhbmv"+ zhbmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_chpmv"+ chpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zhpmv"+ zhpmv'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cgeru"+ cgeru'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zgeru"+ zgeru'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cgerc"+ cgerc'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zgerc"+ zgerc'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cher"+ cher'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zher"+ zher'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_chpr"+ chpr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ()))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zhpr"+ zhpr'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ()))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cher2"+ cher2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zher2"+ zher2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_chpr2"+ chpr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zhpr2"+ zhpr2'_ :: (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (IO ()))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_sgemm"+ sgemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dgemm"+ dgemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cgemm"+ cgemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zgemm"+ zgemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ssymm"+ ssymm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dsymm"+ dsymm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_csymm"+ csymm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zsymm"+ zsymm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ssyrk"+ ssyrk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dsyrk"+ dsyrk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_csyrk"+ csyrk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zsyrk"+ zsyrk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ssyr2k"+ ssyr2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dsyr2k"+ dsyr2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_csyr2k"+ csyr2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zsyr2k"+ zsyr2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_chemm"+ chemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zhemm"+ zhemm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cherk"+ cherk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zherk"+ zherk'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_cher2k"+ cher2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (CFloat -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_zher2k"+ zher2k'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (CDouble -> ((Ptr ()) -> (BlasInt -> (IO ()))))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_strmm"+ strmm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dtrmm"+ dtrmm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ctrmm"+ ctrmm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ztrmm"+ ztrmm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_strsm"+ strsm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CFloat -> ((Ptr CFloat) -> (BlasInt -> ((Ptr CFloat) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_dtrsm"+ dtrsm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (CDouble -> ((Ptr CDouble) -> (BlasInt -> ((Ptr CDouble) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ctrsm"+ ctrsm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))++foreign import ccall unsafe "src/Blas/Primitive/Unsafe_.chs.h cblas_ztrsm"+ ztrsm'_ :: (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> (BlasInt -> ((Ptr ()) -> ((Ptr ()) -> (BlasInt -> ((Ptr ()) -> (BlasInt -> (IO ())))))))))))))
+ src/BlasCTypes.hs view
@@ -0,0 +1,16 @@+{-# OPTIONS_HADDOCK hide #-}+module BlasCTypes (BlasInt, BlasIndex) where+import Foreign.C.Types++-- Here, we define some aliases for the C types in case the Blas+-- implementation decides to use some non-standard types.++-- This is the main integral type used by the CBlas interface. Usually, this+-- corresponds the `int` type in C. However, some implementations may offer+-- an alternative interface that uses a different type (e.g. `int64`).+type BlasInt = CInt++-- This is the integral type used for indices returned by `iamax` functions.+-- Usually, this corresponds to the `size_t` type in C. In CBlas, this is+-- referred to as `CBLAS_INDEX`.+type BlasIndex = CSize
+ src/FFI.hs view
@@ -0,0 +1,32 @@+{-# OPTIONS_HADDOCK hide #-}+module FFI where+import Foreign (Ptr, Storable(peek), castPtr, with, alloca)+import Foreign.C (CFloat(CFloat), CDouble(CDouble))++-- | Convert to a C enum value.+toCEnum :: (Enum a, Num b) => a -> b+toCEnum = fromIntegral . fromEnum++-- | Convert from a C enum value.+fromCEnum :: (Integral a, Enum b) => a -> b+fromCEnum = toEnum . fromIntegral++-- | Convert by unwrapping a @newtype@.+-- Safe, though possibly unportable.+fromCFloat :: CFloat -> Float+fromCFloat (CFloat x) = x++-- | Convert by unwrapping a @newtype@.+-- Safe, though possibly unportable.+fromCDouble :: CDouble -> Double+fromCDouble (CDouble x) = x++-- | Same as 'with' but accepts a @void@-pointer instead.+-- Warning: make sure the type is compatible.+withVoidPtr :: Storable a => a -> (Ptr () -> IO c) -> IO c+withVoidPtr x f = with x (f . castPtr)++-- | Extract the return value via a pointer argument.+-- Warning: make sure the only a one element is written.+getReturnValue :: Storable a => (Ptr a -> IO ()) -> IO a+getReturnValue f = alloca $ \ x -> f x >> peek x
+ tests/MainTest.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE Rank2Types #-}+module MainTest (tests) where+import Control.Monad.ST (RealWorld)+import Data.Complex (Complex)+import Data.Vector.Storable (MVector(MVector))+import Distribution.TestSuite+ ( Progress(Finished)+ , Result(Fail, Pass)+ , Test(Test)+ , TestInstance(TestInstance)+ )+import Foreign (Ptr, Storable, withForeignPtr)+import Text.Printf (printf)+import Blas.Generic.Unsafe (Numeric)+import qualified Data.Vector.Generic.Mutable as MVector+import qualified Data.Vector.Storable as Vector+import qualified Distribution.TestSuite as Test+import qualified Blas.Primitive.Types as Blas+import qualified Blas.Generic.Unsafe as Blas++tests :: IO [Test]+tests =+ return $+ mapNumericTypes (simpleTest "gemm test" . testGemm)++simpleTest :: String -> IO Progress -> Test+simpleTest name action = Test test+ where test = TestInstance+ { Test.run = action+ , Test.name = name+ , Test.tags = []+ , Test.options = []+ , Test.setOption = \_ _ -> Right test+ }++passT :: IO Progress+passT = return $ Finished Pass++failT :: String -> IO Progress+failT = return . Finished .Fail++mapNumericTypes :: (forall a. (Eq a, Numeric a, Show a) => a -> b) -> [b]+mapNumericTypes f =+ [ f (dummy :: Float)+ , f (dummy :: Double)+ , f (dummy :: Complex Float)+ , f (dummy :: Complex Double)+ ]++dummy :: a+dummy = error "dummy value that shouldn't be used"++withMVector :: MVector s a -> (Ptr a -> IO b) -> IO b+withMVector (MVector _ foreignPtr) = withForeignPtr foreignPtr++mVectorFromList :: Storable a => [a] -> IO (MVector RealWorld a)+mVectorFromList = Vector.thaw . Vector.fromList++testGemm :: (Eq a, Numeric a, Show a) => a -> IO Progress+testGemm numType = do+ let order = Blas.RowMajor+ transa = Blas.NoTrans+ transb = Blas.Trans+ n = 2+ size = n * n+ alpha = 1.0 `asTypeOf` numType+ beta = 0.0+ a = Vector.fromList [1, 2, 3, 4]+ b = Vector.fromList [1, 2, 3, 5]+ expected = Vector.fromList [5, 13, 11, 29]++ c <- mVectorFromList $ take size (repeat 0)++ Vector.unsafeWith a $ \ pa ->+ Vector.unsafeWith b $ \ pb ->+ withMVector c $ \ pc ->+ Blas.gemm order transa transb n n n alpha pa n pb n beta pc n++ c' <- Vector.freeze c+ if c' == expected+ then passT+ else failT $ printf "result does not match: %s != %s"+ (show c') (show expected)