packages feed

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 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)