packages feed

blas-ffi (empty) → 0.0

raw patch · 11 files changed

+1221/−0 lines, 11 filesdep +basedep +netlib-ffisetup-changed

Dependencies added: base, netlib-ffi

Files

+ LICENSE view
@@ -0,0 +1,27 @@+Copyright (c) Henning Thielemann 2017++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions+are met:+1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. Neither the name of the author nor the names of his contributors+   may be used to endorse or promote products derived from this software+   without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF+SUCH DAMAGE.
+ Setup.lhs view
@@ -0,0 +1,3 @@+#! /usr/bin/env runhaskell+> import Distribution.Simple+> main = defaultMain
+ blas-ffi.cabal view
@@ -0,0 +1,50 @@+Name:             blas-ffi+Version:          0.0+License:          BSD3+License-File:     LICENSE+Author:           Henning Thielemann <haskell@henning-thielemann.de>+Maintainer:       Henning Thielemann <haskell@henning-thielemann.de>+Homepage:         http://hub.darcs.net/thielema/blas-ffi/+Category:         Math+Synopsis:         Auto-generated interface to Fortran BLAS+Description:+  BLAS is a package for efficient basic linear algebra operations.+  The reference implementation is written in FORTRAN.+  .+  This is an automatically generated low-level interface.+  We provide bindings to functions of all variants+  for @Float@, @Double@, @Complex Float@ and @Complex Double@.+  We do not use TemplateHaskell nor HSC nor CHS,+  but instead Haskell 98 code+  generated by the custom @lapack-ffi-tools@ package.+Tested-With:      GHC==7.4.2, GHC==7.8.4+Cabal-Version:    >=1.14+Build-Type:       Simple++Source-Repository this+  Tag:         0.0+  Type:        darcs+  Location:    http://hub.darcs.net/thielema/blas-ffi/++Source-Repository head+  Type:        darcs+  Location:    http://hub.darcs.net/thielema/blas-ffi/++Library+  PkgConfig-Depends: blas+  Build-Depends:+    netlib-ffi >=0.0 && <0.1,+    base >=4.5 && <5++  GHC-Options:      -Wall+  Hs-Source-Dirs:   src+  Default-Language: Haskell98+  Exposed-Modules:+    Numeric.BLAS.FFI.Float+    Numeric.BLAS.FFI.Double+    Numeric.BLAS.FFI.Real+    Numeric.BLAS.FFI.ComplexFloat+    Numeric.BLAS.FFI.ComplexDouble+    Numeric.BLAS.FFI.Complex+    Numeric.BLAS.FFI.Generic+    Numeric.BLAS.FFI.Miscellaneous
+ src/Numeric/BLAS/FFI/Complex.hs view
@@ -0,0 +1,272 @@+-- Do not edit! Automatically generated by create-lapack-ffi.+module Numeric.BLAS.FFI.Complex (+   axpy,+   cabs1,+   casum,+   cnrm2,+   copy,+   gbmv,+   gemm,+   gemv,+   gerc,+   geru,+   hbmv,+   hemm,+   hemv,+   her,+   her2,+   her2k,+   herk,+   hpmv,+   hpr,+   hpr2,+   iamax,+   rotg,+   rrot,+   rscal,+   scal,+   swap,+   symm,+   syr2k,+   syrk,+   tbmv,+   tbsv,+   tpmv,+   tpsv,+   trmm,+   trmv,+   trsm,+   trsv,+   ) where++import qualified Numeric.BLAS.FFI.ComplexFloat as C+import qualified Numeric.BLAS.FFI.ComplexDouble as Z++import qualified Numeric.Netlib.Class as Class++import Data.Complex (Complex)+import Foreign.Ptr (Ptr)+import Foreign.C.Types++++newtype AXPY a = AXPY {getAXPY :: Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++axpy :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+axpy = getAXPY $ Class.switchReal (AXPY C.axpy) (AXPY Z.axpy)+++newtype CABS1 a = CABS1 {getCABS1 :: Ptr (Complex a) -> IO a}++cabs1 :: Class.Real a => Ptr (Complex a) -> IO a+cabs1 = getCABS1 $ Class.switchReal (CABS1 C.cabs1) (CABS1 Z.cabs1)+++newtype CASUM a = CASUM {getCASUM :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO a}++casum :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO a+casum = getCASUM $ Class.switchReal (CASUM C.casum) (CASUM Z.casum)+++newtype CNRM2 a = CNRM2 {getCNRM2 :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO a}++cnrm2 :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO a+cnrm2 = getCNRM2 $ Class.switchReal (CNRM2 C.cnrm2) (CNRM2 Z.cnrm2)+++newtype COPY a = COPY {getCOPY :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++copy :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+copy = getCOPY $ Class.switchReal (COPY C.copy) (COPY Z.copy)+++newtype GBMV a = GBMV {getGBMV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++gbmv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+gbmv = getGBMV $ Class.switchReal (GBMV C.gbmv) (GBMV Z.gbmv)+++newtype GEMM a = GEMM {getGEMM :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++gemm :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+gemm = getGEMM $ Class.switchReal (GEMM C.gemm) (GEMM Z.gemm)+++newtype GEMV a = GEMV {getGEMV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++gemv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+gemv = getGEMV $ Class.switchReal (GEMV C.gemv) (GEMV Z.gemv)+++newtype GERC a = GERC {getGERC :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++gerc :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+gerc = getGERC $ Class.switchReal (GERC C.gerc) (GERC Z.gerc)+++newtype GERU a = GERU {getGERU :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++geru :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+geru = getGERU $ Class.switchReal (GERU C.geru) (GERU Z.geru)+++newtype HBMV a = HBMV {getHBMV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++hbmv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+hbmv = getHBMV $ Class.switchReal (HBMV C.hbmv) (HBMV Z.hbmv)+++newtype HEMM a = HEMM {getHEMM :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++hemm :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+hemm = getHEMM $ Class.switchReal (HEMM C.hemm) (HEMM Z.hemm)+++newtype HEMV a = HEMV {getHEMV :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++hemv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+hemv = getHEMV $ Class.switchReal (HEMV C.hemv) (HEMV Z.hemv)+++newtype HER a = HER {getHER :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++her :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+her = getHER $ Class.switchReal (HER C.her) (HER Z.her)+++newtype HER2 a = HER2 {getHER2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++her2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+her2 = getHER2 $ Class.switchReal (HER2 C.her2) (HER2 Z.her2)+++newtype HER2K a = HER2K {getHER2K :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}++her2k :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()+her2k = getHER2K $ Class.switchReal (HER2K C.her2k) (HER2K Z.her2k)+++newtype HERK a = HERK {getHERK :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}++herk :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()+herk = getHERK $ Class.switchReal (HERK C.herk) (HERK Z.herk)+++newtype HPMV a = HPMV {getHPMV :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++hpmv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+hpmv = getHPMV $ Class.switchReal (HPMV C.hpmv) (HPMV Z.hpmv)+++newtype HPR a = HPR {getHPR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()}++hpr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()+hpr = getHPR $ Class.switchReal (HPR C.hpr) (HPR Z.hpr)+++newtype HPR2 a = HPR2 {getHPR2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()}++hpr2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()+hpr2 = getHPR2 $ Class.switchReal (HPR2 C.hpr2) (HPR2 Z.hpr2)+++newtype IAMAX a = IAMAX {getIAMAX :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO CInt}++iamax :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO CInt+iamax = getIAMAX $ Class.switchReal (IAMAX C.iamax) (IAMAX Z.iamax)+++newtype ROTG a = ROTG {getROTG :: Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> IO ()}++rotg :: Class.Real a => Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> IO ()+rotg = getROTG $ Class.switchReal (ROTG C.rotg) (ROTG Z.rotg)+++newtype RROT a = RROT {getRROT :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> IO ()}++rrot :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> IO ()+rrot = getRROT $ Class.switchReal (RROT C.rrot) (RROT Z.rrot)+++newtype RSCAL a = RSCAL {getRSCAL :: Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}++rscal :: Class.Real a => Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()+rscal = getRSCAL $ Class.switchReal (RSCAL C.rscal) (RSCAL Z.rscal)+++newtype SCAL a = SCAL {getSCAL :: Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++scal :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+scal = getSCAL $ Class.switchReal (SCAL C.scal) (SCAL Z.scal)+++newtype SWAP a = SWAP {getSWAP :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++swap :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+swap = getSWAP $ Class.switchReal (SWAP C.swap) (SWAP Z.swap)+++newtype SYMM a = SYMM {getSYMM :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++symm :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+symm = getSYMM $ Class.switchReal (SYMM C.symm) (SYMM Z.symm)+++newtype SYR2K a = SYR2K {getSYR2K :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++syr2k :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+syr2k = getSYR2K $ Class.switchReal (SYR2K C.syr2k) (SYR2K Z.syr2k)+++newtype SYRK a = SYRK {getSYRK :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++syrk :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+syrk = getSYRK $ Class.switchReal (SYRK C.syrk) (SYRK Z.syrk)+++newtype TBMV a = TBMV {getTBMV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++tbmv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+tbmv = getTBMV $ Class.switchReal (TBMV C.tbmv) (TBMV Z.tbmv)+++newtype TBSV a = TBSV {getTBSV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++tbsv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+tbsv = getTBSV $ Class.switchReal (TBSV C.tbsv) (TBSV Z.tbsv)+++newtype TPMV a = TPMV {getTPMV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++tpmv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+tpmv = getTPMV $ Class.switchReal (TPMV C.tpmv) (TPMV Z.tpmv)+++newtype TPSV a = TPSV {getTPSV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}++tpsv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()+tpsv = getTPSV $ Class.switchReal (TPSV C.tpsv) (TPSV Z.tpsv)+++newtype TRMM a = TRMM {getTRMM :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++trmm :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+trmm = getTRMM $ Class.switchReal (TRMM C.trmm) (TRMM Z.trmm)+++newtype TRMV a = TRMV {getTRMV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++trmv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+trmv = getTRMV $ Class.switchReal (TRMV C.trmv) (TRMV Z.trmv)+++newtype TRSM a = TRSM {getTRSM :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++trsm :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+trsm = getTRSM $ Class.switchReal (TRSM C.trsm) (TRSM Z.trsm)+++newtype TRSV a = TRSV {getTRSV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}++trsv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()+trsv = getTRSV $ Class.switchReal (TRSV C.trsv) (TRSV Z.trsv)
+ src/Numeric/BLAS/FFI/ComplexDouble.hs view
@@ -0,0 +1,119 @@+-- Do not edit! Automatically generated by create-lapack-ffi.+{-# LANGUAGE ForeignFunctionInterface #-}+module Numeric.BLAS.FFI.ComplexDouble where++import Data.Complex (Complex)+import Foreign.Ptr (Ptr)+import Foreign.C.Types+++foreign import ccall "zaxpy_"+   axpy :: Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "dcabs1_"+   cabs1 :: Ptr (Complex Double) -> IO Double++foreign import ccall "dzasum_"+   casum :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO Double++foreign import ccall "dznrm2_"+   cnrm2 :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO Double++foreign import ccall "zcopy_"+   copy :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zgbmv_"+   gbmv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zgemm_"+   gemm :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zgemv_"+   gemv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zgerc_"+   gerc :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zgeru_"+   geru :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zhbmv_"+   hbmv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zhemm_"+   hemm :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zhemv_"+   hemv :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zher_"+   her :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zher2_"+   her2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zher2k_"+   her2k :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zherk_"+   herk :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zhpmv_"+   hpmv :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zhpr_"+   hpr :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> IO ()++foreign import ccall "zhpr2_"+   hpr2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> IO ()++foreign import ccall "izamax_"+   iamax :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO CInt++foreign import ccall "zrotg_"+   rotg :: Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> IO ()++foreign import ccall "zdrot_"+   rrot :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> IO ()++foreign import ccall "zdscal_"+   rscal :: Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zscal_"+   scal :: Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zswap_"+   swap :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zsymm_"+   symm :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zsyr2k_"+   syr2k :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "zsyrk_"+   syrk :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "ztbmv_"+   tbmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "ztbsv_"+   tbsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "ztpmv_"+   tpmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "ztpsv_"+   tpsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "ztrmm_"+   trmm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "ztrmv_"+   trmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "ztrsm_"+   trsm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()++foreign import ccall "ztrsv_"+   trsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+ src/Numeric/BLAS/FFI/ComplexFloat.hs view
@@ -0,0 +1,119 @@+-- Do not edit! Automatically generated by create-lapack-ffi.+{-# LANGUAGE ForeignFunctionInterface #-}+module Numeric.BLAS.FFI.ComplexFloat where++import Data.Complex (Complex)+import Foreign.Ptr (Ptr)+import Foreign.C.Types+++foreign import ccall "caxpy_"+   axpy :: Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "scabs1_"+   cabs1 :: Ptr (Complex Float) -> IO Float++foreign import ccall "scasum_"+   casum :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO Float++foreign import ccall "scnrm2_"+   cnrm2 :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO Float++foreign import ccall "ccopy_"+   copy :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "cgbmv_"+   gbmv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "cgemm_"+   gemm :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "cgemv_"+   gemv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "cgerc_"+   gerc :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "cgeru_"+   geru :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "chbmv_"+   hbmv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "chemm_"+   hemm :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "chemv_"+   hemv :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "cher_"+   her :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "cher2_"+   her2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "cher2k_"+   her2k :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "cherk_"+   herk :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "chpmv_"+   hpmv :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "chpr_"+   hpr :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> IO ()++foreign import ccall "chpr2_"+   hpr2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> IO ()++foreign import ccall "icamax_"+   iamax :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO CInt++foreign import ccall "crotg_"+   rotg :: Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> IO ()++foreign import ccall "csrot_"+   rrot :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> IO ()++foreign import ccall "csscal_"+   rscal :: Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "cscal_"+   scal :: Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "cswap_"+   swap :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "csymm_"+   symm :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "csyr2k_"+   syr2k :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "csyrk_"+   syrk :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "ctbmv_"+   tbmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "ctbsv_"+   tbsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "ctpmv_"+   tpmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "ctpsv_"+   tpsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "ctrmm_"+   trmm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "ctrmv_"+   trmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "ctrsm_"+   trsm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()++foreign import ccall "ctrsv_"+   trsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+ src/Numeric/BLAS/FFI/Double.hs view
@@ -0,0 +1,112 @@+-- Do not edit! Automatically generated by create-lapack-ffi.+{-# LANGUAGE ForeignFunctionInterface #-}+module Numeric.BLAS.FFI.Double where++import Foreign.Ptr (Ptr)+import Foreign.C.Types+++foreign import ccall "dasum_"+   asum :: Ptr CInt -> Ptr Double -> Ptr CInt -> IO Double++foreign import ccall "daxpy_"+   axpy :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dcopy_"+   copy :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "ddot_"+   dot :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO Double++foreign import ccall "dgbmv_"+   gbmv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dgemm_"+   gemm :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dgemv_"+   gemv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dger_"+   ger :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "idamax_"+   iamax :: Ptr CInt -> Ptr Double -> Ptr CInt -> IO CInt++foreign import ccall "dnrm2_"+   nrm2 :: Ptr CInt -> Ptr Double -> Ptr CInt -> IO Double++foreign import ccall "drot_"+   rot :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> IO ()++foreign import ccall "drotg_"+   rotg :: Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()++foreign import ccall "drotm_"+   rotm :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> IO ()++foreign import ccall "drotmg_"+   rotmg :: Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()++foreign import ccall "dsbmv_"+   sbmv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dscal_"+   scal :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dsdot_"+   sdot :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO Double++foreign import ccall "dspmv_"+   spmv :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dspr_"+   spr :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> IO ()++foreign import ccall "dspr2_"+   spr2 :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> IO ()++foreign import ccall "dswap_"+   swap :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dsymm_"+   symm :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dsymv_"+   symv :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dsyr_"+   syr :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dsyr2_"+   syr2 :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dsyr2k_"+   syr2k :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dsyrk_"+   syrk :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dtbmv_"+   tbmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dtbsv_"+   tbsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dtpmv_"+   tpmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dtpsv_"+   tpsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dtrmm_"+   trmm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dtrmv_"+   trmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dtrsm_"+   trsm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()++foreign import ccall "dtrsv_"+   trsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+ src/Numeric/BLAS/FFI/Float.hs view
@@ -0,0 +1,112 @@+-- Do not edit! Automatically generated by create-lapack-ffi.+{-# LANGUAGE ForeignFunctionInterface #-}+module Numeric.BLAS.FFI.Float where++import Foreign.Ptr (Ptr)+import Foreign.C.Types+++foreign import ccall "sasum_"+   asum :: Ptr CInt -> Ptr Float -> Ptr CInt -> IO Float++foreign import ccall "saxpy_"+   axpy :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "scopy_"+   copy :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "sdot_"+   dot :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO Float++foreign import ccall "sdsdot_"+   dsdot :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO Float++foreign import ccall "sgbmv_"+   gbmv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "sgemm_"+   gemm :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "sgemv_"+   gemv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "sger_"+   ger :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "isamax_"+   iamax :: Ptr CInt -> Ptr Float -> Ptr CInt -> IO CInt++foreign import ccall "snrm2_"+   nrm2 :: Ptr CInt -> Ptr Float -> Ptr CInt -> IO Float++foreign import ccall "srot_"+   rot :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> IO ()++foreign import ccall "srotg_"+   rotg :: Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()++foreign import ccall "srotm_"+   rotm :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> IO ()++foreign import ccall "srotmg_"+   rotmg :: Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()++foreign import ccall "ssbmv_"+   sbmv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "sscal_"+   scal :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "sspmv_"+   spmv :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "sspr_"+   spr :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> IO ()++foreign import ccall "sspr2_"+   spr2 :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> IO ()++foreign import ccall "sswap_"+   swap :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "ssymm_"+   symm :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "ssymv_"+   symv :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "ssyr_"+   syr :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "ssyr2_"+   syr2 :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "ssyr2k_"+   syr2k :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "ssyrk_"+   syrk :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "stbmv_"+   tbmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "stbsv_"+   tbsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "stpmv_"+   tpmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "stpsv_"+   tpsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "strmm_"+   trmm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "strmv_"+   trmv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "strsm_"+   trsm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()++foreign import ccall "strsv_"+   trsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+ src/Numeric/BLAS/FFI/Generic.hs view
@@ -0,0 +1,147 @@+-- Do not edit! Automatically generated by create-lapack-ffi.+module Numeric.BLAS.FFI.Generic (+   axpy,+   copy,+   gbmv,+   gemm,+   gemv,+   iamax,+   scal,+   swap,+   symm,+   syr2k,+   syrk,+   tbmv,+   tbsv,+   tpmv,+   tpsv,+   trmm,+   trmv,+   trsm,+   trsv,+   ) where++import qualified Numeric.BLAS.FFI.ComplexFloat as C+import qualified Numeric.BLAS.FFI.ComplexDouble as Z+import qualified Numeric.BLAS.FFI.Float as S+import qualified Numeric.BLAS.FFI.Double as D++import qualified Numeric.Netlib.Class as Class++import Foreign.Ptr (Ptr)+import Foreign.C.Types++++newtype AXPY a = AXPY {getAXPY :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++axpy :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+axpy = getAXPY $ Class.switchFloating (AXPY S.axpy) (AXPY D.axpy) (AXPY C.axpy) (AXPY Z.axpy)+++newtype COPY a = COPY {getCOPY :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++copy :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+copy = getCOPY $ Class.switchFloating (COPY S.copy) (COPY D.copy) (COPY C.copy) (COPY Z.copy)+++newtype GBMV a = GBMV {getGBMV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++gbmv :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+gbmv = getGBMV $ Class.switchFloating (GBMV S.gbmv) (GBMV D.gbmv) (GBMV C.gbmv) (GBMV Z.gbmv)+++newtype GEMM a = GEMM {getGEMM :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++gemm :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+gemm = getGEMM $ Class.switchFloating (GEMM S.gemm) (GEMM D.gemm) (GEMM C.gemm) (GEMM Z.gemm)+++newtype GEMV a = GEMV {getGEMV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++gemv :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+gemv = getGEMV $ Class.switchFloating (GEMV S.gemv) (GEMV D.gemv) (GEMV C.gemv) (GEMV Z.gemv)+++newtype IAMAX a = IAMAX {getIAMAX :: Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt}++iamax :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt+iamax = getIAMAX $ Class.switchFloating (IAMAX S.iamax) (IAMAX D.iamax) (IAMAX C.iamax) (IAMAX Z.iamax)+++newtype SCAL a = SCAL {getSCAL :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++scal :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+scal = getSCAL $ Class.switchFloating (SCAL S.scal) (SCAL D.scal) (SCAL C.scal) (SCAL Z.scal)+++newtype SWAP a = SWAP {getSWAP :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++swap :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+swap = getSWAP $ Class.switchFloating (SWAP S.swap) (SWAP D.swap) (SWAP C.swap) (SWAP Z.swap)+++newtype SYMM a = SYMM {getSYMM :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++symm :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+symm = getSYMM $ Class.switchFloating (SYMM S.symm) (SYMM D.symm) (SYMM C.symm) (SYMM Z.symm)+++newtype SYR2K a = SYR2K {getSYR2K :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++syr2k :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+syr2k = getSYR2K $ Class.switchFloating (SYR2K S.syr2k) (SYR2K D.syr2k) (SYR2K C.syr2k) (SYR2K Z.syr2k)+++newtype SYRK a = SYRK {getSYRK :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++syrk :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+syrk = getSYRK $ Class.switchFloating (SYRK S.syrk) (SYRK D.syrk) (SYRK C.syrk) (SYRK Z.syrk)+++newtype TBMV a = TBMV {getTBMV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++tbmv :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+tbmv = getTBMV $ Class.switchFloating (TBMV S.tbmv) (TBMV D.tbmv) (TBMV C.tbmv) (TBMV Z.tbmv)+++newtype TBSV a = TBSV {getTBSV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++tbsv :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+tbsv = getTBSV $ Class.switchFloating (TBSV S.tbsv) (TBSV D.tbsv) (TBSV C.tbsv) (TBSV Z.tbsv)+++newtype TPMV a = TPMV {getTPMV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++tpmv :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+tpmv = getTPMV $ Class.switchFloating (TPMV S.tpmv) (TPMV D.tpmv) (TPMV C.tpmv) (TPMV Z.tpmv)+++newtype TPSV a = TPSV {getTPSV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++tpsv :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+tpsv = getTPSV $ Class.switchFloating (TPSV S.tpsv) (TPSV D.tpsv) (TPSV C.tpsv) (TPSV Z.tpsv)+++newtype TRMM a = TRMM {getTRMM :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++trmm :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+trmm = getTRMM $ Class.switchFloating (TRMM S.trmm) (TRMM D.trmm) (TRMM C.trmm) (TRMM Z.trmm)+++newtype TRMV a = TRMV {getTRMV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++trmv :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+trmv = getTRMV $ Class.switchFloating (TRMV S.trmv) (TRMV D.trmv) (TRMV C.trmv) (TRMV Z.trmv)+++newtype TRSM a = TRSM {getTRSM :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++trsm :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+trsm = getTRSM $ Class.switchFloating (TRSM S.trsm) (TRSM D.trsm) (TRSM C.trsm) (TRSM Z.trsm)+++newtype TRSV a = TRSV {getTRSV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++trsv :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+trsv = getTRSV $ Class.switchFloating (TRSV S.trsv) (TRSV D.trsv) (TRSV C.trsv) (TRSV Z.trsv)
+ src/Numeric/BLAS/FFI/Miscellaneous.hs view
@@ -0,0 +1,10 @@+-- Do not edit! Automatically generated by create-lapack-ffi.+{-# LANGUAGE ForeignFunctionInterface #-}+module Numeric.BLAS.FFI.Miscellaneous where++import Foreign.Ptr (Ptr)+import Foreign.C.Types+++foreign import ccall "lsame_"+   lsame :: Ptr CChar -> Ptr CChar -> IO Bool
+ src/Numeric/BLAS/FFI/Real.hs view
@@ -0,0 +1,250 @@+-- Do not edit! Automatically generated by create-lapack-ffi.+module Numeric.BLAS.FFI.Real (+   asum,+   axpy,+   copy,+   dot,+   gbmv,+   gemm,+   gemv,+   ger,+   iamax,+   nrm2,+   rot,+   rotg,+   rotm,+   rotmg,+   sbmv,+   scal,+   spmv,+   spr,+   spr2,+   swap,+   symm,+   symv,+   syr,+   syr2,+   syr2k,+   syrk,+   tbmv,+   tbsv,+   tpmv,+   tpsv,+   trmm,+   trmv,+   trsm,+   trsv,+   ) where++import qualified Numeric.BLAS.FFI.Float as S+import qualified Numeric.BLAS.FFI.Double as D++import qualified Numeric.Netlib.Class as Class++import Foreign.Ptr (Ptr)+import Foreign.C.Types++++newtype ASUM a = ASUM {getASUM :: Ptr CInt -> Ptr a -> Ptr CInt -> IO a}++asum :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> IO a+asum = getASUM $ Class.switchReal (ASUM S.asum) (ASUM D.asum)+++newtype AXPY a = AXPY {getAXPY :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++axpy :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+axpy = getAXPY $ Class.switchReal (AXPY S.axpy) (AXPY D.axpy)+++newtype COPY a = COPY {getCOPY :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++copy :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+copy = getCOPY $ Class.switchReal (COPY S.copy) (COPY D.copy)+++newtype DOT a = DOT {getDOT :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO a}++dot :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO a+dot = getDOT $ Class.switchReal (DOT S.dot) (DOT D.dot)+++newtype GBMV a = GBMV {getGBMV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++gbmv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+gbmv = getGBMV $ Class.switchReal (GBMV S.gbmv) (GBMV D.gbmv)+++newtype GEMM a = GEMM {getGEMM :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++gemm :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+gemm = getGEMM $ Class.switchReal (GEMM S.gemm) (GEMM D.gemm)+++newtype GEMV a = GEMV {getGEMV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++gemv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+gemv = getGEMV $ Class.switchReal (GEMV S.gemv) (GEMV D.gemv)+++newtype GER a = GER {getGER :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++ger :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+ger = getGER $ Class.switchReal (GER S.ger) (GER D.ger)+++newtype IAMAX a = IAMAX {getIAMAX :: Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt}++iamax :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt+iamax = getIAMAX $ Class.switchReal (IAMAX S.iamax) (IAMAX D.iamax)+++newtype NRM2 a = NRM2 {getNRM2 :: Ptr CInt -> Ptr a -> Ptr CInt -> IO a}++nrm2 :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> IO a+nrm2 = getNRM2 $ Class.switchReal (NRM2 S.nrm2) (NRM2 D.nrm2)+++newtype ROT a = ROT {getROT :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> IO ()}++rot :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> IO ()+rot = getROT $ Class.switchReal (ROT S.rot) (ROT D.rot)+++newtype ROTG a = ROTG {getROTG :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}++rotg :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()+rotg = getROTG $ Class.switchReal (ROTG S.rotg) (ROTG D.rotg)+++newtype ROTM a = ROTM {getROTM :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}++rotm :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO ()+rotm = getROTM $ Class.switchReal (ROTM S.rotm) (ROTM D.rotm)+++newtype ROTMG a = ROTMG {getROTMG :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}++rotmg :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()+rotmg = getROTMG $ Class.switchReal (ROTMG S.rotmg) (ROTMG D.rotmg)+++newtype SBMV a = SBMV {getSBMV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++sbmv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+sbmv = getSBMV $ Class.switchReal (SBMV S.sbmv) (SBMV D.sbmv)+++newtype SCAL a = SCAL {getSCAL :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++scal :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+scal = getSCAL $ Class.switchReal (SCAL S.scal) (SCAL D.scal)+++newtype SPMV a = SPMV {getSPMV :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++spmv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+spmv = getSPMV $ Class.switchReal (SPMV S.spmv) (SPMV D.spmv)+++newtype SPR a = SPR {getSPR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}++spr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()+spr = getSPR $ Class.switchReal (SPR S.spr) (SPR D.spr)+++newtype SPR2 a = SPR2 {getSPR2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}++spr2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO ()+spr2 = getSPR2 $ Class.switchReal (SPR2 S.spr2) (SPR2 D.spr2)+++newtype SWAP a = SWAP {getSWAP :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++swap :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+swap = getSWAP $ Class.switchReal (SWAP S.swap) (SWAP D.swap)+++newtype SYMM a = SYMM {getSYMM :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++symm :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+symm = getSYMM $ Class.switchReal (SYMM S.symm) (SYMM D.symm)+++newtype SYMV a = SYMV {getSYMV :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++symv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+symv = getSYMV $ Class.switchReal (SYMV S.symv) (SYMV D.symv)+++newtype SYR a = SYR {getSYR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++syr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+syr = getSYR $ Class.switchReal (SYR S.syr) (SYR D.syr)+++newtype SYR2 a = SYR2 {getSYR2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++syr2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+syr2 = getSYR2 $ Class.switchReal (SYR2 S.syr2) (SYR2 D.syr2)+++newtype SYR2K a = SYR2K {getSYR2K :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++syr2k :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+syr2k = getSYR2K $ Class.switchReal (SYR2K S.syr2k) (SYR2K D.syr2k)+++newtype SYRK a = SYRK {getSYRK :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++syrk :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+syrk = getSYRK $ Class.switchReal (SYRK S.syrk) (SYRK D.syrk)+++newtype TBMV a = TBMV {getTBMV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++tbmv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+tbmv = getTBMV $ Class.switchReal (TBMV S.tbmv) (TBMV D.tbmv)+++newtype TBSV a = TBSV {getTBSV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++tbsv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+tbsv = getTBSV $ Class.switchReal (TBSV S.tbsv) (TBSV D.tbsv)+++newtype TPMV a = TPMV {getTPMV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++tpmv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+tpmv = getTPMV $ Class.switchReal (TPMV S.tpmv) (TPMV D.tpmv)+++newtype TPSV a = TPSV {getTPSV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}++tpsv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()+tpsv = getTPSV $ Class.switchReal (TPSV S.tpsv) (TPSV D.tpsv)+++newtype TRMM a = TRMM {getTRMM :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++trmm :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+trmm = getTRMM $ Class.switchReal (TRMM S.trmm) (TRMM D.trmm)+++newtype TRMV a = TRMV {getTRMV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++trmv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+trmv = getTRMV $ Class.switchReal (TRMV S.trmv) (TRMV D.trmv)+++newtype TRSM a = TRSM {getTRSM :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++trsm :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+trsm = getTRSM $ Class.switchReal (TRSM S.trsm) (TRSM D.trsm)+++newtype TRSV a = TRSV {getTRSV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}++trsv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()+trsv = getTRSV $ Class.switchReal (TRSV S.trsv) (TRSV D.trsv)