diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) Henning Thielemann 2016
+
+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.
diff --git a/Setup.lhs b/Setup.lhs
new file mode 100644
--- /dev/null
+++ b/Setup.lhs
@@ -0,0 +1,3 @@
+#! /usr/bin/env runhaskell
+> import Distribution.Simple
+> main = defaultMain
diff --git a/lapack-ffi.cabal b/lapack-ffi.cabal
new file mode 100644
--- /dev/null
+++ b/lapack-ffi.cabal
@@ -0,0 +1,50 @@
+Name:             lapack-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/lapack-ffi/
+Category:         Math
+Synopsis:         Auto-generated interface to Fortran LAPACK
+Description:
+  LAPACK is a package for efficient numerically robust linear algebra.
+  The original implementation is written in FORTRAN.
+  .
+  This is an automatically generated low-level wrapper.
+  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/lapack-ffi/
+
+Source-Repository head
+  Type:        darcs
+  Location:    http://hub.darcs.net/thielema/lapack-ffi/
+
+Library
+  PkgConfig-Depends: lapack
+  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.LAPACK.FFI.Float
+    Numeric.LAPACK.FFI.Double
+    Numeric.LAPACK.FFI.Real
+    Numeric.LAPACK.FFI.ComplexFloat
+    Numeric.LAPACK.FFI.ComplexDouble
+    Numeric.LAPACK.FFI.Complex
+    Numeric.LAPACK.FFI.Generic
+    Numeric.LAPACK.FFI.Miscellaneous
diff --git a/src/Numeric/LAPACK/FFI/Complex.hs b/src/Numeric/LAPACK/FFI/Complex.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/LAPACK/FFI/Complex.hs
@@ -0,0 +1,2435 @@
+-- Do not edit! Automatically generated by create-lapack-ffi.
+module Numeric.LAPACK.FFI.Complex (
+   bbcsd,
+   bdsqr,
+   gbbrd,
+   gbcon,
+   gbequ,
+   gbequb,
+   gbrfs,
+   gbsv,
+   gbsvx,
+   gbtf2,
+   gbtrf,
+   gbtrs,
+   gebak,
+   gebal,
+   gebd2,
+   gebrd,
+   gecon,
+   geequ,
+   geequb,
+   gees,
+   geesx,
+   geev,
+   geevx,
+   gehd2,
+   gehrd,
+   gelq2,
+   gelqf,
+   gels,
+   gelsd,
+   gelss,
+   gelsy,
+   geql2,
+   geqlf,
+   geqp3,
+   geqr2,
+   geqr2p,
+   geqrf,
+   geqrfp,
+   gerfs,
+   gerq2,
+   gerqf,
+   gesc2,
+   gesdd,
+   gesv,
+   gesvd,
+   gesvx,
+   getc2,
+   getf2,
+   getrf,
+   getri,
+   getrs,
+   ggbak,
+   ggbal,
+   gges,
+   ggesx,
+   ggev,
+   ggevx,
+   ggglm,
+   gghrd,
+   gglse,
+   ggqrf,
+   ggrqf,
+   gtcon,
+   gtrfs,
+   gtsv,
+   gtsvx,
+   gttrf,
+   gttrs,
+   gtts2,
+   hbev,
+   hbevd,
+   hbevx,
+   hbgst,
+   hbgv,
+   hbgvd,
+   hbgvx,
+   hbtrd,
+   hecon,
+   heequb,
+   heev,
+   heevd,
+   heevr,
+   heevx,
+   hegs2,
+   hegst,
+   hegv,
+   hegvd,
+   hegvx,
+   herfs,
+   hesv,
+   hesvx,
+   heswapr,
+   hetd2,
+   hetf2,
+   hetrd,
+   hetrf,
+   hetri,
+   hetri2,
+   hetri2x,
+   hetrs,
+   hetrs2,
+   hfrk,
+   hgeqz,
+   hpcon,
+   hpev,
+   hpevd,
+   hpevx,
+   hpgst,
+   hpgv,
+   hpgvd,
+   hpgvx,
+   hprfs,
+   hpsv,
+   hpsvx,
+   hptrd,
+   hptrf,
+   hptri,
+   hptrs,
+   hsein,
+   hseqr,
+   ilalc,
+   ilalr,
+   imax1,
+   labrd,
+   lacgv,
+   lacn2,
+   lacon,
+   lacp2,
+   lacpy,
+   lacrm,
+   lacrt,
+   laed0,
+   laed7,
+   laed8,
+   laein,
+   laesy,
+   laev2,
+   lags2,
+   lagtm,
+   lahef,
+   lahqr,
+   lahr2,
+   laic1,
+   lals0,
+   lalsa,
+   lalsd,
+   langb,
+   lange,
+   langt,
+   lanhb,
+   lanhe,
+   lanhf,
+   lanhp,
+   lanhs,
+   lanht,
+   lansb,
+   lansp,
+   lansy,
+   lantb,
+   lantp,
+   lantr,
+   lapll,
+   lapmr,
+   lapmt,
+   laqgb,
+   laqge,
+   laqhb,
+   laqhe,
+   laqhp,
+   laqp2,
+   laqps,
+   laqr0,
+   laqr1,
+   laqr2,
+   laqr3,
+   laqr4,
+   laqr5,
+   laqsb,
+   laqsp,
+   laqsy,
+   lar1v,
+   lar2v,
+   larcm,
+   larf,
+   larfb,
+   larfg,
+   larfgp,
+   larft,
+   larfx,
+   largv,
+   larnv,
+   larrv,
+   lartg,
+   lartv,
+   larz,
+   larzb,
+   larzt,
+   lascl,
+   laset,
+   lasr,
+   lassq,
+   laswp,
+   lasyf,
+   latbs,
+   latdf,
+   latps,
+   latrd,
+   latrs,
+   latrz,
+   lauu2,
+   lauum,
+   pbcon,
+   pbequ,
+   pbrfs,
+   pbstf,
+   pbsv,
+   pbsvx,
+   pbtf2,
+   pbtrf,
+   pbtrs,
+   pftrf,
+   pftri,
+   pftrs,
+   pocon,
+   poequ,
+   poequb,
+   porfs,
+   posv,
+   posvx,
+   potf2,
+   potrf,
+   potri,
+   potrs,
+   ppcon,
+   ppequ,
+   pprfs,
+   ppsv,
+   ppsvx,
+   pptrf,
+   pptri,
+   pptrs,
+   pstf2,
+   pstrf,
+   ptcon,
+   pteqr,
+   ptrfs,
+   ptsv,
+   ptsvx,
+   pttrf,
+   pttrs,
+   ptts2,
+   rot,
+   rscl,
+   spcon,
+   spmv,
+   spr,
+   sprfs,
+   spsv,
+   spsvx,
+   sptrf,
+   sptri,
+   sptrs,
+   stedc,
+   stegr,
+   stein,
+   stemr,
+   steqr,
+   sum1,
+   sycon,
+   syconv,
+   syequb,
+   symv,
+   syr,
+   syrfs,
+   sysv,
+   sysvx,
+   syswapr,
+   sytf2,
+   sytrf,
+   sytri,
+   sytri2,
+   sytri2x,
+   sytrs,
+   sytrs2,
+   tbcon,
+   tbrfs,
+   tbtrs,
+   tfsm,
+   tftri,
+   tfttp,
+   tfttr,
+   tgevc,
+   tgex2,
+   tgexc,
+   tgsen,
+   tgsja,
+   tgsna,
+   tgsy2,
+   tgsyl,
+   tpcon,
+   tprfs,
+   tptri,
+   tptrs,
+   tpttf,
+   tpttr,
+   trcon,
+   trevc,
+   trexc,
+   trrfs,
+   trsen,
+   trsna,
+   trsyl,
+   trti2,
+   trtri,
+   trtrs,
+   trttf,
+   trttp,
+   tzrzf,
+   unbdb,
+   uncsd,
+   ung2l,
+   ung2r,
+   ungbr,
+   unghr,
+   ungl2,
+   unglq,
+   ungql,
+   ungqr,
+   ungr2,
+   ungrq,
+   ungtr,
+   unm2l,
+   unm2r,
+   unmbr,
+   unmhr,
+   unml2,
+   unmlq,
+   unmql,
+   unmqr,
+   unmr2,
+   unmr3,
+   unmrq,
+   unmrz,
+   unmtr,
+   upgtr,
+   upmtr,
+   ) where
+
+import qualified Numeric.LAPACK.FFI.ComplexFloat as C
+import qualified Numeric.LAPACK.FFI.ComplexDouble as Z
+
+import qualified Numeric.Netlib.Class as Class
+
+import Data.Complex (Complex)
+import Foreign.Ptr (FunPtr, Ptr)
+import Foreign.C.Types
+
+
+
+newtype BBCSD a = BBCSD {getBBCSD :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+bbcsd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+bbcsd = getBBCSD $ Class.switchReal (BBCSD C.bbcsd) (BBCSD Z.bbcsd)
+
+
+newtype BDSQR a = BDSQR {getBDSQR :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+bdsqr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+bdsqr = getBDSQR $ Class.switchReal (BDSQR C.bdsqr) (BDSQR Z.bdsqr)
+
+
+newtype GBBRD a = GBBRD {getGBBRD :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+gbbrd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+gbbrd = getGBBRD $ Class.switchReal (GBBRD C.gbbrd) (GBBRD Z.gbbrd)
+
+
+newtype GBCON a = GBCON {getGBCON :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+gbcon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+gbcon = getGBCON $ Class.switchReal (GBCON C.gbcon) (GBCON Z.gbcon)
+
+
+newtype GBEQU a = GBEQU {getGBEQU :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+gbequ :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+gbequ = getGBEQU $ Class.switchReal (GBEQU C.gbequ) (GBEQU Z.gbequ)
+
+
+newtype GBEQUB a = GBEQUB {getGBEQUB :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+gbequb :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+gbequb = getGBEQUB $ Class.switchReal (GBEQUB C.gbequb) (GBEQUB Z.gbequb)
+
+
+newtype GBRFS a = GBRFS {getGBRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+gbrfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+gbrfs = getGBRFS $ Class.switchReal (GBRFS C.gbrfs) (GBRFS Z.gbrfs)
+
+
+newtype GBSV a = GBSV {getGBSV :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbsv :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gbsv = getGBSV $ Class.switchReal (GBSV C.gbsv) (GBSV Z.gbsv)
+
+
+newtype GBSVX a = GBSVX {getGBSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+gbsvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+gbsvx = getGBSVX $ Class.switchReal (GBSVX C.gbsvx) (GBSVX Z.gbsvx)
+
+
+newtype GBTF2 a = GBTF2 {getGBTF2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbtf2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+gbtf2 = getGBTF2 $ Class.switchReal (GBTF2 C.gbtf2) (GBTF2 Z.gbtf2)
+
+
+newtype GBTRF a = GBTRF {getGBTRF :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbtrf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+gbtrf = getGBTRF $ Class.switchReal (GBTRF C.gbtrf) (GBTRF Z.gbtrf)
+
+
+newtype GBTRS a = GBTRS {getGBTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbtrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gbtrs = getGBTRS $ Class.switchReal (GBTRS C.gbtrs) (GBTRS Z.gbtrs)
+
+
+newtype GEBAK a = GEBAK {getGEBAK :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gebak :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gebak = getGEBAK $ Class.switchReal (GEBAK C.gebak) (GEBAK Z.gebak)
+
+
+newtype GEBAL a = GEBAL {getGEBAL :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+gebal :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+gebal = getGEBAL $ Class.switchReal (GEBAL C.gebal) (GEBAL Z.gebal)
+
+
+newtype GEBD2 a = GEBD2 {getGEBD2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+gebd2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+gebd2 = getGEBD2 $ Class.switchReal (GEBD2 C.gebd2) (GEBD2 Z.gebd2)
+
+
+newtype GEBRD a = GEBRD {getGEBRD :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gebrd :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gebrd = getGEBRD $ Class.switchReal (GEBRD C.gebrd) (GEBRD Z.gebrd)
+
+
+newtype GECON a = GECON {getGECON :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+gecon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+gecon = getGECON $ Class.switchReal (GECON C.gecon) (GECON Z.gecon)
+
+
+newtype GEEQU a = GEEQU {getGEEQU :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+geequ :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+geequ = getGEEQU $ Class.switchReal (GEEQU C.geequ) (GEEQU Z.geequ)
+
+
+newtype GEEQUB a = GEEQUB {getGEEQUB :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+geequb :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+geequb = getGEEQUB $ Class.switchReal (GEEQUB C.geequb) (GEEQUB Z.geequb)
+
+
+newtype GEES a = GEES {getGEES :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex a) -> IO Bool) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr Bool -> Ptr CInt -> IO ()}
+
+gees :: Class.Real a => Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex a) -> IO Bool) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr Bool -> Ptr CInt -> IO ()
+gees = getGEES $ Class.switchReal (GEES C.gees) (GEES Z.gees)
+
+
+newtype GEESX a = GEESX {getGEESX :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex a) -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr Bool -> Ptr CInt -> IO ()}
+
+geesx :: Class.Real a => Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex a) -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr Bool -> Ptr CInt -> IO ()
+geesx = getGEESX $ Class.switchReal (GEESX C.geesx) (GEESX Z.geesx)
+
+
+newtype GEEV a = GEEV {getGEEV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+geev :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+geev = getGEEV $ Class.switchReal (GEEV C.geev) (GEEV Z.geev)
+
+
+newtype GEEVX a = GEEVX {getGEEVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+geevx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+geevx = getGEEVX $ Class.switchReal (GEEVX C.geevx) (GEEVX Z.geevx)
+
+
+newtype GEHD2 a = GEHD2 {getGEHD2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+gehd2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+gehd2 = getGEHD2 $ Class.switchReal (GEHD2 C.gehd2) (GEHD2 Z.gehd2)
+
+
+newtype GEHRD a = GEHRD {getGEHRD :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gehrd :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gehrd = getGEHRD $ Class.switchReal (GEHRD C.gehrd) (GEHRD Z.gehrd)
+
+
+newtype GELQ2 a = GELQ2 {getGELQ2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+gelq2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+gelq2 = getGELQ2 $ Class.switchReal (GELQ2 C.gelq2) (GELQ2 Z.gelq2)
+
+
+newtype GELQF a = GELQF {getGELQF :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gelqf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gelqf = getGELQF $ Class.switchReal (GELQF C.gelqf) (GELQF Z.gelqf)
+
+
+newtype GELS a = GELS {getGELS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gels :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gels = getGELS $ Class.switchReal (GELS C.gels) (GELS Z.gels)
+
+
+newtype GELSD a = GELSD {getGELSD :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gelsd :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gelsd = getGELSD $ Class.switchReal (GELSD C.gelsd) (GELSD Z.gelsd)
+
+
+newtype GELSS a = GELSS {getGELSS :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+gelss :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+gelss = getGELSS $ Class.switchReal (GELSS C.gelss) (GELSS Z.gelss)
+
+
+newtype GELSY a = GELSY {getGELSY :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+gelsy :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+gelsy = getGELSY $ Class.switchReal (GELSY C.gelsy) (GELSY Z.gelsy)
+
+
+newtype GEQL2 a = GEQL2 {getGEQL2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+geql2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+geql2 = getGEQL2 $ Class.switchReal (GEQL2 C.geql2) (GEQL2 Z.geql2)
+
+
+newtype GEQLF a = GEQLF {getGEQLF :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geqlf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+geqlf = getGEQLF $ Class.switchReal (GEQLF C.geqlf) (GEQLF Z.geqlf)
+
+
+newtype GEQP3 a = GEQP3 {getGEQP3 :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+geqp3 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+geqp3 = getGEQP3 $ Class.switchReal (GEQP3 C.geqp3) (GEQP3 Z.geqp3)
+
+
+newtype GEQR2 a = GEQR2 {getGEQR2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+geqr2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+geqr2 = getGEQR2 $ Class.switchReal (GEQR2 C.geqr2) (GEQR2 Z.geqr2)
+
+
+newtype GEQR2P a = GEQR2P {getGEQR2P :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+geqr2p :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+geqr2p = getGEQR2P $ Class.switchReal (GEQR2P C.geqr2p) (GEQR2P Z.geqr2p)
+
+
+newtype GEQRF a = GEQRF {getGEQRF :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geqrf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+geqrf = getGEQRF $ Class.switchReal (GEQRF C.geqrf) (GEQRF Z.geqrf)
+
+
+newtype GEQRFP a = GEQRFP {getGEQRFP :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geqrfp :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+geqrfp = getGEQRFP $ Class.switchReal (GEQRFP C.geqrfp) (GEQRFP Z.geqrfp)
+
+
+newtype GERFS a = GERFS {getGERFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+gerfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+gerfs = getGERFS $ Class.switchReal (GERFS C.gerfs) (GERFS Z.gerfs)
+
+
+newtype GERQ2 a = GERQ2 {getGERQ2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+gerq2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+gerq2 = getGERQ2 $ Class.switchReal (GERQ2 C.gerq2) (GERQ2 Z.gerq2)
+
+
+newtype GERQF a = GERQF {getGERQF :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gerqf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gerqf = getGERQF $ Class.switchReal (GERQF C.gerqf) (GERQF Z.gerqf)
+
+
+newtype GESC2 a = GESC2 {getGESC2 :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> IO ()}
+
+gesc2 :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> IO ()
+gesc2 = getGESC2 $ Class.switchReal (GESC2 C.gesc2) (GESC2 Z.gesc2)
+
+
+newtype GESDD a = GESDD {getGESDD :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gesdd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gesdd = getGESDD $ Class.switchReal (GESDD C.gesdd) (GESDD Z.gesdd)
+
+
+newtype GESV a = GESV {getGESV :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gesv :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gesv = getGESV $ Class.switchReal (GESV C.gesv) (GESV Z.gesv)
+
+
+newtype GESVD a = GESVD {getGESVD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+gesvd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+gesvd = getGESVD $ Class.switchReal (GESVD C.gesvd) (GESVD Z.gesvd)
+
+
+newtype GESVX a = GESVX {getGESVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+gesvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+gesvx = getGESVX $ Class.switchReal (GESVX C.gesvx) (GESVX Z.gesvx)
+
+
+newtype GETC2 a = GETC2 {getGETC2 :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getc2 :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+getc2 = getGETC2 $ Class.switchReal (GETC2 C.getc2) (GETC2 Z.getc2)
+
+
+newtype GETF2 a = GETF2 {getGETF2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getf2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+getf2 = getGETF2 $ Class.switchReal (GETF2 C.getf2) (GETF2 Z.getf2)
+
+
+newtype GETRF a = GETRF {getGETRF :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getrf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+getrf = getGETRF $ Class.switchReal (GETRF C.getrf) (GETRF Z.getrf)
+
+
+newtype GETRI a = GETRI {getGETRI :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getri :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+getri = getGETRI $ Class.switchReal (GETRI C.getri) (GETRI Z.getri)
+
+
+newtype GETRS a = GETRS {getGETRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+getrs = getGETRS $ Class.switchReal (GETRS C.getrs) (GETRS Z.getrs)
+
+
+newtype GGBAK a = GGBAK {getGGBAK :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggbak :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+ggbak = getGGBAK $ Class.switchReal (GGBAK C.ggbak) (GGBAK Z.ggbak)
+
+
+newtype GGBAL a = GGBAL {getGGBAL :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+ggbal :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+ggbal = getGGBAL $ Class.switchReal (GGBAL C.ggbal) (GGBAL Z.ggbal)
+
+
+newtype GGES a = GGES {getGGES :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex a) -> Ptr (Complex a) -> IO Bool) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr Bool -> Ptr CInt -> IO ()}
+
+gges :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex a) -> Ptr (Complex a) -> IO Bool) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr Bool -> Ptr CInt -> IO ()
+gges = getGGES $ Class.switchReal (GGES C.gges) (GGES Z.gges)
+
+
+newtype GGESX a = GGESX {getGGESX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex a) -> Ptr (Complex a) -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()}
+
+ggesx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex a) -> Ptr (Complex a) -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+ggesx = getGGESX $ Class.switchReal (GGESX C.ggesx) (GGESX Z.ggesx)
+
+
+newtype GGEV a = GGEV {getGGEV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+ggev :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+ggev = getGGEV $ Class.switchReal (GGEV C.ggev) (GGEV Z.ggev)
+
+
+newtype GGEVX a = GGEVX {getGGEVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()}
+
+ggevx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+ggevx = getGGEVX $ Class.switchReal (GGEVX C.ggevx) (GGEVX Z.ggevx)
+
+
+newtype GGGLM a = GGGLM {getGGGLM :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggglm :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+ggglm = getGGGLM $ Class.switchReal (GGGLM C.ggglm) (GGGLM Z.ggglm)
+
+
+newtype GGHRD a = GGHRD {getGGHRD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gghrd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gghrd = getGGHRD $ Class.switchReal (GGHRD C.gghrd) (GGHRD Z.gghrd)
+
+
+newtype GGLSE a = GGLSE {getGGLSE :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gglse :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gglse = getGGLSE $ Class.switchReal (GGLSE C.gglse) (GGLSE Z.gglse)
+
+
+newtype GGQRF a = GGQRF {getGGQRF :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggqrf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+ggqrf = getGGQRF $ Class.switchReal (GGQRF C.ggqrf) (GGQRF Z.ggqrf)
+
+
+newtype GGRQF a = GGRQF {getGGRQF :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggrqf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+ggrqf = getGGRQF $ Class.switchReal (GGRQF C.ggrqf) (GGRQF Z.ggrqf)
+
+
+newtype GTCON a = GTCON {getGTCON :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+gtcon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+gtcon = getGTCON $ Class.switchReal (GTCON C.gtcon) (GTCON Z.gtcon)
+
+
+newtype GTRFS a = GTRFS {getGTRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+gtrfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+gtrfs = getGTRFS $ Class.switchReal (GTRFS C.gtrfs) (GTRFS Z.gtrfs)
+
+
+newtype GTSV a = GTSV {getGTSV :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gtsv :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gtsv = getGTSV $ Class.switchReal (GTSV C.gtsv) (GTSV Z.gtsv)
+
+
+newtype GTSVX a = GTSVX {getGTSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+gtsvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+gtsvx = getGTSVX $ Class.switchReal (GTSVX C.gtsvx) (GTSVX Z.gtsvx)
+
+
+newtype GTTRF a = GTTRF {getGTTRF :: Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gttrf :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gttrf = getGTTRF $ Class.switchReal (GTTRF C.gttrf) (GTTRF Z.gttrf)
+
+
+newtype GTTRS a = GTTRS {getGTTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gttrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+gttrs = getGTTRS $ Class.switchReal (GTTRS C.gttrs) (GTTRS Z.gttrs)
+
+
+newtype GTTS2 a = GTTS2 {getGTTS2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+gtts2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+gtts2 = getGTTS2 $ Class.switchReal (GTTS2 C.gtts2) (GTTS2 Z.gtts2)
+
+
+newtype HBEV a = HBEV {getHBEV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+hbev :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+hbev = getHBEV $ Class.switchReal (HBEV C.hbev) (HBEV Z.hbev)
+
+
+newtype HBEVD a = HBEVD {getHBEVD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hbevd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hbevd = getHBEVD $ Class.switchReal (HBEVD C.hbevd) (HBEVD Z.hbevd)
+
+
+newtype HBEVX a = HBEVX {getHBEVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hbevx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hbevx = getHBEVX $ Class.switchReal (HBEVX C.hbevx) (HBEVX Z.hbevx)
+
+
+newtype HBGST a = HBGST {getHBGST :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+hbgst :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+hbgst = getHBGST $ Class.switchReal (HBGST C.hbgst) (HBGST Z.hbgst)
+
+
+newtype HBGV a = HBGV {getHBGV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+hbgv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+hbgv = getHBGV $ Class.switchReal (HBGV C.hbgv) (HBGV Z.hbgv)
+
+
+newtype HBGVD a = HBGVD {getHBGVD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hbgvd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hbgvd = getHBGVD $ Class.switchReal (HBGVD C.hbgvd) (HBGVD Z.hbgvd)
+
+
+newtype HBGVX a = HBGVX {getHBGVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hbgvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hbgvx = getHBGVX $ Class.switchReal (HBGVX C.hbgvx) (HBGVX Z.hbgvx)
+
+
+newtype HBTRD a = HBTRD {getHBTRD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+hbtrd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+hbtrd = getHBTRD $ Class.switchReal (HBTRD C.hbtrd) (HBTRD Z.hbtrd)
+
+
+newtype HECON a = HECON {getHECON :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+hecon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+hecon = getHECON $ Class.switchReal (HECON C.hecon) (HECON Z.hecon)
+
+
+newtype HEEQUB a = HEEQUB {getHEEQUB :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+heequb :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+heequb = getHEEQUB $ Class.switchReal (HEEQUB C.heequb) (HEEQUB Z.heequb)
+
+
+newtype HEEV a = HEEV {getHEEV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+heev :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+heev = getHEEV $ Class.switchReal (HEEV C.heev) (HEEV Z.heev)
+
+
+newtype HEEVD a = HEEVD {getHEEVD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+heevd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+heevd = getHEEVD $ Class.switchReal (HEEVD C.heevd) (HEEVD Z.heevd)
+
+
+newtype HEEVR a = HEEVR {getHEEVR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+heevr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+heevr = getHEEVR $ Class.switchReal (HEEVR C.heevr) (HEEVR Z.heevr)
+
+
+newtype HEEVX a = HEEVX {getHEEVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+heevx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+heevx = getHEEVX $ Class.switchReal (HEEVX C.heevx) (HEEVX Z.heevx)
+
+
+newtype HEGS2 a = HEGS2 {getHEGS2 :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hegs2 :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hegs2 = getHEGS2 $ Class.switchReal (HEGS2 C.hegs2) (HEGS2 Z.hegs2)
+
+
+newtype HEGST a = HEGST {getHEGST :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hegst :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hegst = getHEGST $ Class.switchReal (HEGST C.hegst) (HEGST Z.hegst)
+
+
+newtype HEGV a = HEGV {getHEGV :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+hegv :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+hegv = getHEGV $ Class.switchReal (HEGV C.hegv) (HEGV Z.hegv)
+
+
+newtype HEGVD a = HEGVD {getHEGVD :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hegvd :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hegvd = getHEGVD $ Class.switchReal (HEGVD C.hegvd) (HEGVD Z.hegvd)
+
+
+newtype HEGVX a = HEGVX {getHEGVX :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hegvx :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hegvx = getHEGVX $ Class.switchReal (HEGVX C.hegvx) (HEGVX Z.hegvx)
+
+
+newtype HERFS a = HERFS {getHERFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+herfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+herfs = getHERFS $ Class.switchReal (HERFS C.herfs) (HERFS Z.herfs)
+
+
+newtype HESV a = HESV {getHESV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hesv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hesv = getHESV $ Class.switchReal (HESV C.hesv) (HESV Z.hesv)
+
+
+newtype HESVX a = HESVX {getHESVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+hesvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+hesvx = getHESVX $ Class.switchReal (HESVX C.hesvx) (HESVX Z.hesvx)
+
+
+newtype HESWAPR a = HESWAPR {getHESWAPR :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+heswapr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+heswapr = getHESWAPR $ Class.switchReal (HESWAPR C.heswapr) (HESWAPR Z.heswapr)
+
+
+newtype HETD2 a = HETD2 {getHETD2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+hetd2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+hetd2 = getHETD2 $ Class.switchReal (HETD2 C.hetd2) (HETD2 Z.hetd2)
+
+
+newtype HETF2 a = HETF2 {getHETF2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hetf2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hetf2 = getHETF2 $ Class.switchReal (HETF2 C.hetf2) (HETF2 Z.hetf2)
+
+
+newtype HETRD a = HETRD {getHETRD :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hetrd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hetrd = getHETRD $ Class.switchReal (HETRD C.hetrd) (HETRD Z.hetrd)
+
+
+newtype HETRF a = HETRF {getHETRF :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hetrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hetrf = getHETRF $ Class.switchReal (HETRF C.hetrf) (HETRF Z.hetrf)
+
+
+newtype HETRI a = HETRI {getHETRI :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+hetri :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+hetri = getHETRI $ Class.switchReal (HETRI C.hetri) (HETRI Z.hetri)
+
+
+newtype HETRI2 a = HETRI2 {getHETRI2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hetri2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hetri2 = getHETRI2 $ Class.switchReal (HETRI2 C.hetri2) (HETRI2 Z.hetri2)
+
+
+newtype HETRI2X a = HETRI2X {getHETRI2X :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hetri2x :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hetri2x = getHETRI2X $ Class.switchReal (HETRI2X C.hetri2x) (HETRI2X Z.hetri2x)
+
+
+newtype HETRS a = HETRS {getHETRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hetrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hetrs = getHETRS $ Class.switchReal (HETRS C.hetrs) (HETRS Z.hetrs)
+
+
+newtype HETRS2 a = HETRS2 {getHETRS2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+hetrs2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+hetrs2 = getHETRS2 $ Class.switchReal (HETRS2 C.hetrs2) (HETRS2 Z.hetrs2)
+
+
+newtype HFRK a = HFRK {getHFRK :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> IO ()}
+
+hfrk :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> IO ()
+hfrk = getHFRK $ Class.switchReal (HFRK C.hfrk) (HFRK Z.hfrk)
+
+
+newtype HGEQZ a = HGEQZ {getHGEQZ :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+hgeqz :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+hgeqz = getHGEQZ $ Class.switchReal (HGEQZ C.hgeqz) (HGEQZ Z.hgeqz)
+
+
+newtype HPCON a = HPCON {getHPCON :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+hpcon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+hpcon = getHPCON $ Class.switchReal (HPCON C.hpcon) (HPCON Z.hpcon)
+
+
+newtype HPEV a = HPEV {getHPEV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+hpev :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+hpev = getHPEV $ Class.switchReal (HPEV C.hpev) (HPEV Z.hpev)
+
+
+newtype HPEVD a = HPEVD {getHPEVD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hpevd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hpevd = getHPEVD $ Class.switchReal (HPEVD C.hpevd) (HPEVD Z.hpevd)
+
+
+newtype HPEVX a = HPEVX {getHPEVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hpevx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hpevx = getHPEVX $ Class.switchReal (HPEVX C.hpevx) (HPEVX Z.hpevx)
+
+
+newtype HPGST a = HPGST {getHPGST :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+hpgst :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+hpgst = getHPGST $ Class.switchReal (HPGST C.hpgst) (HPGST Z.hpgst)
+
+
+newtype HPGV a = HPGV {getHPGV :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+hpgv :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+hpgv = getHPGV $ Class.switchReal (HPGV C.hpgv) (HPGV Z.hpgv)
+
+
+newtype HPGVD a = HPGVD {getHPGVD :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hpgvd :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hpgvd = getHPGVD $ Class.switchReal (HPGVD C.hpgvd) (HPGVD Z.hpgvd)
+
+
+newtype HPGVX a = HPGVX {getHPGVX :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hpgvx :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hpgvx = getHPGVX $ Class.switchReal (HPGVX C.hpgvx) (HPGVX Z.hpgvx)
+
+
+newtype HPRFS a = HPRFS {getHPRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+hprfs :: 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 CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+hprfs = getHPRFS $ Class.switchReal (HPRFS C.hprfs) (HPRFS Z.hprfs)
+
+
+newtype HPSV a = HPSV {getHPSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hpsv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hpsv = getHPSV $ Class.switchReal (HPSV C.hpsv) (HPSV Z.hpsv)
+
+
+newtype HPSVX a = HPSVX {getHPSVX :: 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 CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+hpsvx :: 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 CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+hpsvx = getHPSVX $ Class.switchReal (HPSVX C.hpsvx) (HPSVX Z.hpsvx)
+
+
+newtype HPTRD a = HPTRD {getHPTRD :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+hptrd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+hptrd = getHPTRD $ Class.switchReal (HPTRD C.hptrd) (HPTRD Z.hptrd)
+
+
+newtype HPTRF a = HPTRF {getHPTRF :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hptrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hptrf = getHPTRF $ Class.switchReal (HPTRF C.hptrf) (HPTRF Z.hptrf)
+
+
+newtype HPTRI a = HPTRI {getHPTRI :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+hptri :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+hptri = getHPTRI $ Class.switchReal (HPTRI C.hptri) (HPTRI Z.hptri)
+
+
+newtype HPTRS a = HPTRS {getHPTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hptrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hptrs = getHPTRS $ Class.switchReal (HPTRS C.hptrs) (HPTRS Z.hptrs)
+
+
+newtype HSEIN a = HSEIN {getHSEIN :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hsein :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hsein = getHSEIN $ Class.switchReal (HSEIN C.hsein) (HSEIN Z.hsein)
+
+
+newtype HSEQR a = HSEQR {getHSEQR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hseqr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+hseqr = getHSEQR $ Class.switchReal (HSEQR C.hseqr) (HSEQR Z.hseqr)
+
+
+newtype ILALC a = ILALC {getILALC :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO CInt}
+
+ilalc :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO CInt
+ilalc = getILALC $ Class.switchReal (ILALC C.ilalc) (ILALC Z.ilalc)
+
+
+newtype ILALR a = ILALR {getILALR :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO CInt}
+
+ilalr :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO CInt
+ilalr = getILALR $ Class.switchReal (ILALR C.ilalr) (ILALR Z.ilalr)
+
+
+newtype IMAX1 a = IMAX1 {getIMAX1 :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO CInt}
+
+imax1 :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO CInt
+imax1 = getIMAX1 $ Class.switchReal (IMAX1 C.imax1) (IMAX1 Z.imax1)
+
+
+newtype LABRD a = LABRD {getLABRD :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+labrd :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+labrd = getLABRD $ Class.switchReal (LABRD C.labrd) (LABRD Z.labrd)
+
+
+newtype LACGV a = LACGV {getLACGV :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+lacgv :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+lacgv = getLACGV $ Class.switchReal (LACGV C.lacgv) (LACGV Z.lacgv)
+
+
+newtype LACN2 a = LACN2 {getLACN2 :: Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lacn2 :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lacn2 = getLACN2 $ Class.switchReal (LACN2 C.lacn2) (LACN2 Z.lacn2)
+
+
+newtype LACON a = LACON {getLACON :: Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+lacon :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+lacon = getLACON $ Class.switchReal (LACON C.lacon) (LACON Z.lacon)
+
+
+newtype LACP2 a = LACP2 {getLACP2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+lacp2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+lacp2 = getLACP2 $ Class.switchReal (LACP2 C.lacp2) (LACP2 Z.lacp2)
+
+
+newtype LACPY a = LACPY {getLACPY :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+lacpy :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+lacpy = getLACPY $ Class.switchReal (LACPY C.lacpy) (LACPY Z.lacpy)
+
+
+newtype LACRM a = LACRM {getLACRM :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO ()}
+
+lacrm :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO ()
+lacrm = getLACRM $ Class.switchReal (LACRM C.lacrm) (LACRM Z.lacrm)
+
+
+newtype LACRT a = LACRT {getLACRT :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()}
+
+lacrt :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()
+lacrt = getLACRT $ Class.switchReal (LACRT C.lacrt) (LACRT Z.lacrt)
+
+
+newtype LAED0 a = LAED0 {getLAED0 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laed0 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+laed0 = getLAED0 $ Class.switchReal (LAED0 C.laed0) (LAED0 Z.laed0)
+
+
+newtype LAED7 a = LAED7 {getLAED7 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laed7 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+laed7 = getLAED7 $ Class.switchReal (LAED7 C.laed7) (LAED7 Z.laed7)
+
+
+newtype LAED8 a = LAED8 {getLAED8 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+laed8 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+laed8 = getLAED8 $ Class.switchReal (LAED8 C.laed8) (LAED8 Z.laed8)
+
+
+newtype LAEIN a = LAEIN {getLAEIN :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+laein :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+laein = getLAEIN $ Class.switchReal (LAEIN C.laein) (LAEIN Z.laein)
+
+
+newtype LAESY a = LAESY {getLAESY :: Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()}
+
+laesy :: Class.Real a => Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()
+laesy = getLAESY $ Class.switchReal (LAESY C.laesy) (LAESY Z.laesy)
+
+
+newtype LAEV2 a = LAEV2 {getLAEV2 :: Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> IO ()}
+
+laev2 :: Class.Real a => Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> IO ()
+laev2 = getLAEV2 $ Class.switchReal (LAEV2 C.laev2) (LAEV2 Z.laev2)
+
+
+newtype LAGS2 a = LAGS2 {getLAGS2 :: Ptr Bool -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> IO ()}
+
+lags2 :: Class.Real a => Ptr Bool -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> IO ()
+lags2 = getLAGS2 $ Class.switchReal (LAGS2 C.lags2) (LAGS2 Z.lags2)
+
+
+newtype LAGTM a = LAGTM {getLAGTM :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+lagtm :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+lagtm = getLAGTM $ Class.switchReal (LAGTM C.lagtm) (LAGTM Z.lagtm)
+
+
+newtype LAHEF a = LAHEF {getLAHEF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lahef :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+lahef = getLAHEF $ Class.switchReal (LAHEF C.lahef) (LAHEF Z.lahef)
+
+
+newtype LAHQR a = LAHQR {getLAHQR :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lahqr :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+lahqr = getLAHQR $ Class.switchReal (LAHQR C.lahqr) (LAHQR Z.lahqr)
+
+
+newtype LAHR2 a = LAHR2 {getLAHR2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+lahr2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+lahr2 = getLAHR2 $ Class.switchReal (LAHR2 C.lahr2) (LAHR2 Z.lahr2)
+
+
+newtype LAIC1 a = LAIC1 {getLAIC1 :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()}
+
+laic1 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()
+laic1 = getLAIC1 $ Class.switchReal (LAIC1 C.laic1) (LAIC1 Z.laic1)
+
+
+newtype LALS0 a = LALS0 {getLALS0 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+lals0 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+lals0 = getLALS0 $ Class.switchReal (LALS0 C.lals0) (LALS0 Z.lals0)
+
+
+newtype LALSA a = LALSA {getLALSA :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lalsa :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lalsa = getLALSA $ Class.switchReal (LALSA C.lalsa) (LALSA Z.lalsa)
+
+
+newtype LALSD a = LALSD {getLALSD :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lalsd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lalsd = getLALSD $ Class.switchReal (LALSD C.lalsd) (LALSD Z.lalsd)
+
+
+newtype LANGB a = LANGB {getLANGB :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a}
+
+langb :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a
+langb = getLANGB $ Class.switchReal (LANGB C.langb) (LANGB Z.langb)
+
+
+newtype LANGE a = LANGE {getLANGE :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a}
+
+lange :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a
+lange = getLANGE $ Class.switchReal (LANGE C.lange) (LANGE Z.lange)
+
+
+newtype LANGT a = LANGT {getLANGT :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> IO a}
+
+langt :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> IO a
+langt = getLANGT $ Class.switchReal (LANGT C.langt) (LANGT Z.langt)
+
+
+newtype LANHB a = LANHB {getLANHB :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a}
+
+lanhb :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a
+lanhb = getLANHB $ Class.switchReal (LANHB C.lanhb) (LANHB Z.lanhb)
+
+
+newtype LANHE a = LANHE {getLANHE :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a}
+
+lanhe :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a
+lanhe = getLANHE $ Class.switchReal (LANHE C.lanhe) (LANHE Z.lanhe)
+
+
+newtype LANHF a = LANHF {getLANHF :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> IO a}
+
+lanhf :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> IO a
+lanhf = getLANHF $ Class.switchReal (LANHF C.lanhf) (LANHF Z.lanhf)
+
+
+newtype LANHP a = LANHP {getLANHP :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> IO a}
+
+lanhp :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> IO a
+lanhp = getLANHP $ Class.switchReal (LANHP C.lanhp) (LANHP Z.lanhp)
+
+
+newtype LANHS a = LANHS {getLANHS :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a}
+
+lanhs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a
+lanhs = getLANHS $ Class.switchReal (LANHS C.lanhs) (LANHS Z.lanhs)
+
+
+newtype LANHT a = LANHT {getLANHT :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> IO a}
+
+lanht :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> IO a
+lanht = getLANHT $ Class.switchReal (LANHT C.lanht) (LANHT Z.lanht)
+
+
+newtype LANSB a = LANSB {getLANSB :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a}
+
+lansb :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a
+lansb = getLANSB $ Class.switchReal (LANSB C.lansb) (LANSB Z.lansb)
+
+
+newtype LANSP a = LANSP {getLANSP :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> IO a}
+
+lansp :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> IO a
+lansp = getLANSP $ Class.switchReal (LANSP C.lansp) (LANSP Z.lansp)
+
+
+newtype LANSY a = LANSY {getLANSY :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a}
+
+lansy :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a
+lansy = getLANSY $ Class.switchReal (LANSY C.lansy) (LANSY Z.lansy)
+
+
+newtype LANTB a = LANTB {getLANTB :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a}
+
+lantb :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a
+lantb = getLANTB $ Class.switchReal (LANTB C.lantb) (LANTB Z.lantb)
+
+
+newtype LANTP a = LANTP {getLANTP :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> IO a}
+
+lantp :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> IO a
+lantp = getLANTP $ Class.switchReal (LANTP C.lantp) (LANTP Z.lantp)
+
+
+newtype LANTR a = LANTR {getLANTR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a}
+
+lantr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO a
+lantr = getLANTR $ Class.switchReal (LANTR C.lantr) (LANTR Z.lantr)
+
+
+newtype LAPLL a = LAPLL {getLAPLL :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO ()}
+
+lapll :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO ()
+lapll = getLAPLL $ Class.switchReal (LAPLL C.lapll) (LAPLL Z.lapll)
+
+
+newtype LAPMR a = LAPMR {getLAPMR :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lapmr :: Class.Real a => Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+lapmr = getLAPMR $ Class.switchReal (LAPMR C.lapmr) (LAPMR Z.lapmr)
+
+
+newtype LAPMT a = LAPMT {getLAPMT :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lapmt :: Class.Real a => Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+lapmt = getLAPMT $ Class.switchReal (LAPMT C.lapmt) (LAPMT Z.lapmt)
+
+
+newtype LAQGB a = LAQGB {getLAQGB :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqgb :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqgb = getLAQGB $ Class.switchReal (LAQGB C.laqgb) (LAQGB Z.laqgb)
+
+
+newtype LAQGE a = LAQGE {getLAQGE :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqge :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqge = getLAQGE $ Class.switchReal (LAQGE C.laqge) (LAQGE Z.laqge)
+
+
+newtype LAQHB a = LAQHB {getLAQHB :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqhb :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqhb = getLAQHB $ Class.switchReal (LAQHB C.laqhb) (LAQHB Z.laqhb)
+
+
+newtype LAQHE a = LAQHE {getLAQHE :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqhe :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqhe = getLAQHE $ Class.switchReal (LAQHE C.laqhe) (LAQHE Z.laqhe)
+
+
+newtype LAQHP a = LAQHP {getLAQHP :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqhp :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqhp = getLAQHP $ Class.switchReal (LAQHP C.laqhp) (LAQHP Z.laqhp)
+
+
+newtype LAQP2 a = LAQP2 {getLAQP2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> IO ()}
+
+laqp2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> IO ()
+laqp2 = getLAQP2 $ Class.switchReal (LAQP2 C.laqp2) (LAQP2 Z.laqp2)
+
+
+newtype LAQPS a = LAQPS {getLAQPS :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+laqps :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+laqps = getLAQPS $ Class.switchReal (LAQPS C.laqps) (LAQPS Z.laqps)
+
+
+newtype LAQR0 a = LAQR0 {getLAQR0 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laqr0 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+laqr0 = getLAQR0 $ Class.switchReal (LAQR0 C.laqr0) (LAQR0 Z.laqr0)
+
+
+newtype LAQR1 a = LAQR1 {getLAQR1 :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()}
+
+laqr1 :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()
+laqr1 = getLAQR1 $ Class.switchReal (LAQR1 C.laqr1) (LAQR1 Z.laqr1)
+
+
+newtype LAQR2 a = LAQR2 {getLAQR2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+laqr2 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+laqr2 = getLAQR2 $ Class.switchReal (LAQR2 C.laqr2) (LAQR2 Z.laqr2)
+
+
+newtype LAQR3 a = LAQR3 {getLAQR3 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+laqr3 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+laqr3 = getLAQR3 $ Class.switchReal (LAQR3 C.laqr3) (LAQR3 Z.laqr3)
+
+
+newtype LAQR4 a = LAQR4 {getLAQR4 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laqr4 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+laqr4 = getLAQR4 $ Class.switchReal (LAQR4 C.laqr4) (LAQR4 Z.laqr4)
+
+
+newtype LAQR5 a = LAQR5 {getLAQR5 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+laqr5 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+laqr5 = getLAQR5 $ Class.switchReal (LAQR5 C.laqr5) (LAQR5 Z.laqr5)
+
+
+newtype LAQSB a = LAQSB {getLAQSB :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqsb :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqsb = getLAQSB $ Class.switchReal (LAQSB C.laqsb) (LAQSB Z.laqsb)
+
+
+newtype LAQSP a = LAQSP {getLAQSP :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqsp :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqsp = getLAQSP $ Class.switchReal (LAQSP C.laqsp) (LAQSP Z.laqsp)
+
+
+newtype LAQSY a = LAQSY {getLAQSY :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqsy :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqsy = getLAQSY $ Class.switchReal (LAQSY C.laqsy) (LAQSY Z.laqsy)
+
+
+newtype LAR1V a = LAR1V {getLAR1V :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lar1v :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lar1v = getLAR1V $ Class.switchReal (LAR1V C.lar1v) (LAR1V Z.lar1v)
+
+
+newtype LAR2V a = LAR2V {getLAR2V :: Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+lar2v :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+lar2v = getLAR2V $ Class.switchReal (LAR2V C.lar2v) (LAR2V Z.lar2v)
+
+
+newtype LARCM a = LARCM {getLARCM :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO ()}
+
+larcm :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> IO ()
+larcm = getLARCM $ Class.switchReal (LARCM C.larcm) (LARCM Z.larcm)
+
+
+newtype LARF a = LARF {getLARF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()}
+
+larf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()
+larf = getLARF $ Class.switchReal (LARF C.larf) (LARF Z.larf)
+
+
+newtype LARFB a = LARFB {getLARFB :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+larfb :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+larfb = getLARFB $ Class.switchReal (LARFB C.larfb) (LARFB Z.larfb)
+
+
+newtype LARFG a = LARFG {getLARFG :: Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()}
+
+larfg :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()
+larfg = getLARFG $ Class.switchReal (LARFG C.larfg) (LARFG Z.larfg)
+
+
+newtype LARFGP a = LARFGP {getLARFGP :: Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()}
+
+larfgp :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()
+larfgp = getLARFGP $ Class.switchReal (LARFGP C.larfgp) (LARFGP Z.larfgp)
+
+
+newtype LARFT a = LARFT {getLARFT :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+larft :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+larft = getLARFT $ Class.switchReal (LARFT C.larft) (LARFT Z.larft)
+
+
+newtype LARFX a = LARFX {getLARFX :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()}
+
+larfx :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()
+larfx = getLARFX $ Class.switchReal (LARFX C.larfx) (LARFX Z.larfx)
+
+
+newtype LARGV a = LARGV {getLARGV :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+largv :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+largv = getLARGV $ Class.switchReal (LARGV C.largv) (LARGV Z.largv)
+
+
+newtype LARNV a = LARNV {getLARNV :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> IO ()}
+
+larnv :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> IO ()
+larnv = getLARNV $ Class.switchReal (LARNV C.larnv) (LARNV Z.larnv)
+
+
+newtype LARRV a = LARRV {getLARRV :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+larrv :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+larrv = getLARRV $ Class.switchReal (LARRV C.larrv) (LARRV Z.larrv)
+
+
+newtype LARTG a = LARTG {getLARTG :: Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()}
+
+lartg :: Class.Real a => Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()
+lartg = getLARTG $ Class.switchReal (LARTG C.lartg) (LARTG Z.lartg)
+
+
+newtype LARTV a = LARTV {getLARTV :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+lartv :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+lartv = getLARTV $ Class.switchReal (LARTV C.lartv) (LARTV Z.lartv)
+
+
+newtype LARZ a = LARZ {getLARZ :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()}
+
+larz :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()
+larz = getLARZ $ Class.switchReal (LARZ C.larz) (LARZ Z.larz)
+
+
+newtype LARZB a = LARZB {getLARZB :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+larzb :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+larzb = getLARZB $ Class.switchReal (LARZB C.larzb) (LARZB Z.larzb)
+
+
+newtype LARZT a = LARZT {getLARZT :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+larzt :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+larzt = getLARZT $ Class.switchReal (LARZT C.larzt) (LARZT Z.larzt)
+
+
+newtype LASCL a = LASCL {getLASCL :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lascl :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+lascl = getLASCL $ Class.switchReal (LASCL C.lascl) (LASCL Z.lascl)
+
+
+newtype LASET a = LASET {getLASET :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+laset :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+laset = getLASET $ Class.switchReal (LASET C.laset) (LASET Z.laset)
+
+
+newtype LASR a = LASR {getLASR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+lasr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+lasr = getLASR $ Class.switchReal (LASR C.lasr) (LASR Z.lasr)
+
+
+newtype LASSQ a = LASSQ {getLASSQ :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> IO ()}
+
+lassq :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> IO ()
+lassq = getLASSQ $ Class.switchReal (LASSQ C.lassq) (LASSQ Z.lassq)
+
+
+newtype LASWP a = LASWP {getLASWP :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laswp :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+laswp = getLASWP $ Class.switchReal (LASWP C.laswp) (LASWP Z.laswp)
+
+
+newtype LASYF a = LASYF {getLASYF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lasyf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+lasyf = getLASYF $ Class.switchReal (LASYF C.lasyf) (LASYF Z.lasyf)
+
+
+newtype LATBS a = LATBS {getLATBS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+latbs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+latbs = getLATBS $ Class.switchReal (LATBS C.latbs) (LATBS Z.latbs)
+
+
+newtype LATDF a = LATDF {getLATDF :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+latdf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+latdf = getLATDF $ Class.switchReal (LATDF C.latdf) (LATDF Z.latdf)
+
+
+newtype LATPS a = LATPS {getLATPS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+latps :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+latps = getLATPS $ Class.switchReal (LATPS C.latps) (LATPS Z.latps)
+
+
+newtype LATRD a = LATRD {getLATRD :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+latrd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+latrd = getLATRD $ Class.switchReal (LATRD C.latrd) (LATRD Z.latrd)
+
+
+newtype LATRS a = LATRS {getLATRS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+latrs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+latrs = getLATRS $ Class.switchReal (LATRS C.latrs) (LATRS Z.latrs)
+
+
+newtype LATRZ a = LATRZ {getLATRZ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()}
+
+latrz :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> IO ()
+latrz = getLATRZ $ Class.switchReal (LATRZ C.latrz) (LATRZ Z.latrz)
+
+
+newtype LAUU2 a = LAUU2 {getLAUU2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lauu2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+lauu2 = getLAUU2 $ Class.switchReal (LAUU2 C.lauu2) (LAUU2 Z.lauu2)
+
+
+newtype LAUUM a = LAUUM {getLAUUM :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lauum :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+lauum = getLAUUM $ Class.switchReal (LAUUM C.lauum) (LAUUM Z.lauum)
+
+
+newtype PBCON a = PBCON {getPBCON :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+pbcon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+pbcon = getPBCON $ Class.switchReal (PBCON C.pbcon) (PBCON Z.pbcon)
+
+
+newtype PBEQU a = PBEQU {getPBEQU :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+pbequ :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+pbequ = getPBEQU $ Class.switchReal (PBEQU C.pbequ) (PBEQU Z.pbequ)
+
+
+newtype PBRFS a = PBRFS {getPBRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+pbrfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+pbrfs = getPBRFS $ Class.switchReal (PBRFS C.pbrfs) (PBRFS Z.pbrfs)
+
+
+newtype PBSTF a = PBSTF {getPBSTF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbstf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+pbstf = getPBSTF $ Class.switchReal (PBSTF C.pbstf) (PBSTF Z.pbstf)
+
+
+newtype PBSV a = PBSV {getPBSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbsv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+pbsv = getPBSV $ Class.switchReal (PBSV C.pbsv) (PBSV Z.pbsv)
+
+
+newtype PBSVX a = PBSVX {getPBSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+pbsvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+pbsvx = getPBSVX $ Class.switchReal (PBSVX C.pbsvx) (PBSVX Z.pbsvx)
+
+
+newtype PBTF2 a = PBTF2 {getPBTF2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbtf2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+pbtf2 = getPBTF2 $ Class.switchReal (PBTF2 C.pbtf2) (PBTF2 Z.pbtf2)
+
+
+newtype PBTRF a = PBTRF {getPBTRF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbtrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+pbtrf = getPBTRF $ Class.switchReal (PBTRF C.pbtrf) (PBTRF Z.pbtrf)
+
+
+newtype PBTRS a = PBTRS {getPBTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbtrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+pbtrs = getPBTRS $ Class.switchReal (PBTRS C.pbtrs) (PBTRS Z.pbtrs)
+
+
+newtype PFTRF a = PFTRF {getPFTRF :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+pftrf :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+pftrf = getPFTRF $ Class.switchReal (PFTRF C.pftrf) (PFTRF Z.pftrf)
+
+
+newtype PFTRI a = PFTRI {getPFTRI :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+pftri :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+pftri = getPFTRI $ Class.switchReal (PFTRI C.pftri) (PFTRI Z.pftri)
+
+
+newtype PFTRS a = PFTRS {getPFTRS :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pftrs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+pftrs = getPFTRS $ Class.switchReal (PFTRS C.pftrs) (PFTRS Z.pftrs)
+
+
+newtype POCON a = POCON {getPOCON :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+pocon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+pocon = getPOCON $ Class.switchReal (POCON C.pocon) (POCON Z.pocon)
+
+
+newtype POEQU a = POEQU {getPOEQU :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+poequ :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+poequ = getPOEQU $ Class.switchReal (POEQU C.poequ) (POEQU Z.poequ)
+
+
+newtype POEQUB a = POEQUB {getPOEQUB :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+poequb :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+poequb = getPOEQUB $ Class.switchReal (POEQUB C.poequb) (POEQUB Z.poequb)
+
+
+newtype PORFS a = PORFS {getPORFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+porfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+porfs = getPORFS $ Class.switchReal (PORFS C.porfs) (PORFS Z.porfs)
+
+
+newtype POSV a = POSV {getPOSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+posv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+posv = getPOSV $ Class.switchReal (POSV C.posv) (POSV Z.posv)
+
+
+newtype POSVX a = POSVX {getPOSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+posvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+posvx = getPOSVX $ Class.switchReal (POSVX C.posvx) (POSVX Z.posvx)
+
+
+newtype POTF2 a = POTF2 {getPOTF2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potf2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+potf2 = getPOTF2 $ Class.switchReal (POTF2 C.potf2) (POTF2 Z.potf2)
+
+
+newtype POTRF a = POTRF {getPOTRF :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+potrf = getPOTRF $ Class.switchReal (POTRF C.potrf) (POTRF Z.potrf)
+
+
+newtype POTRI a = POTRI {getPOTRI :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potri :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+potri = getPOTRI $ Class.switchReal (POTRI C.potri) (POTRI Z.potri)
+
+
+newtype POTRS a = POTRS {getPOTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+potrs = getPOTRS $ Class.switchReal (POTRS C.potrs) (POTRS Z.potrs)
+
+
+newtype PPCON a = PPCON {getPPCON :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+ppcon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+ppcon = getPPCON $ Class.switchReal (PPCON C.ppcon) (PPCON Z.ppcon)
+
+
+newtype PPEQU a = PPEQU {getPPEQU :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+ppequ :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+ppequ = getPPEQU $ Class.switchReal (PPEQU C.ppequ) (PPEQU Z.ppequ)
+
+
+newtype PPRFS a = PPRFS {getPPRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+pprfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+pprfs = getPPRFS $ Class.switchReal (PPRFS C.pprfs) (PPRFS Z.pprfs)
+
+
+newtype PPSV a = PPSV {getPPSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ppsv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+ppsv = getPPSV $ Class.switchReal (PPSV C.ppsv) (PPSV Z.ppsv)
+
+
+newtype PPSVX a = PPSVX {getPPSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CChar -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+ppsvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CChar -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+ppsvx = getPPSVX $ Class.switchReal (PPSVX C.ppsvx) (PPSVX Z.ppsvx)
+
+
+newtype PPTRF a = PPTRF {getPPTRF :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+pptrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+pptrf = getPPTRF $ Class.switchReal (PPTRF C.pptrf) (PPTRF Z.pptrf)
+
+
+newtype PPTRI a = PPTRI {getPPTRI :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+pptri :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+pptri = getPPTRI $ Class.switchReal (PPTRI C.pptri) (PPTRI Z.pptri)
+
+
+newtype PPTRS a = PPTRS {getPPTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pptrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+pptrs = getPPTRS $ Class.switchReal (PPTRS C.pptrs) (PPTRS Z.pptrs)
+
+
+newtype PSTF2 a = PSTF2 {getPSTF2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+pstf2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+pstf2 = getPSTF2 $ Class.switchReal (PSTF2 C.pstf2) (PSTF2 Z.pstf2)
+
+
+newtype PSTRF a = PSTRF {getPSTRF :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+pstrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+pstrf = getPSTRF $ Class.switchReal (PSTRF C.pstrf) (PSTRF Z.pstrf)
+
+
+newtype PTCON a = PTCON {getPTCON :: Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+ptcon :: Class.Real a => Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+ptcon = getPTCON $ Class.switchReal (PTCON C.ptcon) (PTCON Z.ptcon)
+
+
+newtype PTEQR a = PTEQR {getPTEQR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+pteqr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+pteqr = getPTEQR $ Class.switchReal (PTEQR C.pteqr) (PTEQR Z.pteqr)
+
+
+newtype PTRFS a = PTRFS {getPTRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+ptrfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+ptrfs = getPTRFS $ Class.switchReal (PTRFS C.ptrfs) (PTRFS Z.ptrfs)
+
+
+newtype PTSV a = PTSV {getPTSV :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ptsv :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+ptsv = getPTSV $ Class.switchReal (PTSV C.ptsv) (PTSV Z.ptsv)
+
+
+newtype PTSVX a = PTSVX {getPTSVX :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+ptsvx :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+ptsvx = getPTSVX $ Class.switchReal (PTSVX C.ptsvx) (PTSVX Z.ptsvx)
+
+
+newtype PTTRF a = PTTRF {getPTTRF :: Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+pttrf :: Class.Real a => Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+pttrf = getPTTRF $ Class.switchReal (PTTRF C.pttrf) (PTTRF Z.pttrf)
+
+
+newtype PTTRS a = PTTRS {getPTTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pttrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+pttrs = getPTTRS $ Class.switchReal (PTTRS C.pttrs) (PTTRS Z.pttrs)
+
+
+newtype PTTS2 a = PTTS2 {getPTTS2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+ptts2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+ptts2 = getPTTS2 $ Class.switchReal (PTTS2 C.ptts2) (PTTS2 Z.ptts2)
+
+
+newtype ROT a = ROT {getROT :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> IO ()}
+
+rot :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> IO ()
+rot = getROT $ Class.switchReal (ROT C.rot) (ROT Z.rot)
+
+
+newtype RSCL a = RSCL {getRSCL :: Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+rscl :: Class.Real a => Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+rscl = getRSCL $ Class.switchReal (RSCL C.rscl) (RSCL Z.rscl)
+
+
+newtype SPCON a = SPCON {getSPCON :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+spcon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+spcon = getSPCON $ Class.switchReal (SPCON C.spcon) (SPCON Z.spcon)
+
+
+newtype SPMV a = SPMV {getSPMV :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+spmv :: 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 ()
+spmv = getSPMV $ Class.switchReal (SPMV C.spmv) (SPMV Z.spmv)
+
+
+newtype SPR a = SPR {getSPR :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()}
+
+spr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> IO ()
+spr = getSPR $ Class.switchReal (SPR C.spr) (SPR Z.spr)
+
+
+newtype SPRFS a = SPRFS {getSPRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+sprfs :: 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 CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+sprfs = getSPRFS $ Class.switchReal (SPRFS C.sprfs) (SPRFS Z.sprfs)
+
+
+newtype SPSV a = SPSV {getSPSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+spsv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+spsv = getSPSV $ Class.switchReal (SPSV C.spsv) (SPSV Z.spsv)
+
+
+newtype SPSVX a = SPSVX {getSPSVX :: 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 CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+spsvx :: 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 CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+spsvx = getSPSVX $ Class.switchReal (SPSVX C.spsvx) (SPSVX Z.spsvx)
+
+
+newtype SPTRF a = SPTRF {getSPTRF :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sptrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+sptrf = getSPTRF $ Class.switchReal (SPTRF C.sptrf) (SPTRF Z.sptrf)
+
+
+newtype SPTRI a = SPTRI {getSPTRI :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+sptri :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+sptri = getSPTRI $ Class.switchReal (SPTRI C.sptri) (SPTRI Z.sptri)
+
+
+newtype SPTRS a = SPTRS {getSPTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sptrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+sptrs = getSPTRS $ Class.switchReal (SPTRS C.sptrs) (SPTRS Z.sptrs)
+
+
+newtype STEDC a = STEDC {getSTEDC :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stedc :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+stedc = getSTEDC $ Class.switchReal (STEDC C.stedc) (STEDC Z.stedc)
+
+
+newtype STEGR a = STEGR {getSTEGR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stegr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+stegr = getSTEGR $ Class.switchReal (STEGR C.stegr) (STEGR Z.stegr)
+
+
+newtype STEIN a = STEIN {getSTEIN :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stein :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+stein = getSTEIN $ Class.switchReal (STEIN C.stein) (STEIN Z.stein)
+
+
+newtype STEMR a = STEMR {getSTEMR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stemr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+stemr = getSTEMR $ Class.switchReal (STEMR C.stemr) (STEMR Z.stemr)
+
+
+newtype STEQR a = STEQR {getSTEQR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+steqr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+steqr = getSTEQR $ Class.switchReal (STEQR C.steqr) (STEQR Z.steqr)
+
+
+newtype SUM1 a = SUM1 {getSUM1 :: Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO a}
+
+sum1 :: Class.Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO a
+sum1 = getSUM1 $ Class.switchReal (SUM1 C.sum1) (SUM1 Z.sum1)
+
+
+newtype SYCON a = SYCON {getSYCON :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+sycon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+sycon = getSYCON $ Class.switchReal (SYCON C.sycon) (SYCON Z.sycon)
+
+
+newtype SYCONV a = SYCONV {getSYCONV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+syconv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+syconv = getSYCONV $ Class.switchReal (SYCONV C.syconv) (SYCONV Z.syconv)
+
+
+newtype SYEQUB a = SYEQUB {getSYEQUB :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+syequb :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> IO ()
+syequb = getSYEQUB $ Class.switchReal (SYEQUB C.syequb) (SYEQUB Z.syequb)
+
+
+newtype SYMV a = SYMV {getSYMV :: 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 ()}
+
+symv :: 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 ()
+symv = getSYMV $ Class.switchReal (SYMV C.symv) (SYMV Z.symv)
+
+
+newtype SYR a = SYR {getSYR :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+syr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+syr = getSYR $ Class.switchReal (SYR C.syr) (SYR Z.syr)
+
+
+newtype SYRFS a = SYRFS {getSYRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+syrfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+syrfs = getSYRFS $ Class.switchReal (SYRFS C.syrfs) (SYRFS Z.syrfs)
+
+
+newtype SYSV a = SYSV {getSYSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sysv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+sysv = getSYSV $ Class.switchReal (SYSV C.sysv) (SYSV Z.sysv)
+
+
+newtype SYSVX a = SYSVX {getSYSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+sysvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+sysvx = getSYSVX $ Class.switchReal (SYSVX C.sysvx) (SYSVX Z.sysvx)
+
+
+newtype SYSWAPR a = SYSWAPR {getSYSWAPR :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+syswapr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+syswapr = getSYSWAPR $ Class.switchReal (SYSWAPR C.syswapr) (SYSWAPR Z.syswapr)
+
+
+newtype SYTF2 a = SYTF2 {getSYTF2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytf2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+sytf2 = getSYTF2 $ Class.switchReal (SYTF2 C.sytf2) (SYTF2 Z.sytf2)
+
+
+newtype SYTRF a = SYTRF {getSYTRF :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+sytrf = getSYTRF $ Class.switchReal (SYTRF C.sytrf) (SYTRF Z.sytrf)
+
+
+newtype SYTRI a = SYTRI {getSYTRI :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+sytri :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+sytri = getSYTRI $ Class.switchReal (SYTRI C.sytri) (SYTRI Z.sytri)
+
+
+newtype SYTRI2 a = SYTRI2 {getSYTRI2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytri2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+sytri2 = getSYTRI2 $ Class.switchReal (SYTRI2 C.sytri2) (SYTRI2 Z.sytri2)
+
+
+newtype SYTRI2X a = SYTRI2X {getSYTRI2X :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytri2x :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+sytri2x = getSYTRI2X $ Class.switchReal (SYTRI2X C.sytri2x) (SYTRI2X Z.sytri2x)
+
+
+newtype SYTRS a = SYTRS {getSYTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+sytrs = getSYTRS $ Class.switchReal (SYTRS C.sytrs) (SYTRS Z.sytrs)
+
+
+newtype SYTRS2 a = SYTRS2 {getSYTRS2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+sytrs2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+sytrs2 = getSYTRS2 $ Class.switchReal (SYTRS2 C.sytrs2) (SYTRS2 Z.sytrs2)
+
+
+newtype TBCON a = TBCON {getTBCON :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+tbcon :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+tbcon = getTBCON $ Class.switchReal (TBCON C.tbcon) (TBCON Z.tbcon)
+
+
+newtype TBRFS a = TBRFS {getTBRFS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+tbrfs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+tbrfs = getTBRFS $ Class.switchReal (TBRFS C.tbrfs) (TBRFS Z.tbrfs)
+
+
+newtype TBTRS a = TBTRS {getTBTRS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tbtrs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+tbtrs = getTBTRS $ Class.switchReal (TBTRS C.tbtrs) (TBTRS Z.tbtrs)
+
+
+newtype TFSM a = TFSM {getTFSM :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+tfsm :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+tfsm = getTFSM $ Class.switchReal (TFSM C.tfsm) (TFSM Z.tfsm)
+
+
+newtype TFTRI a = TFTRI {getTFTRI :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+tftri :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+tftri = getTFTRI $ Class.switchReal (TFTRI C.tftri) (TFTRI Z.tftri)
+
+
+newtype TFTTP a = TFTTP {getTFTTP :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+tfttp :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+tfttp = getTFTTP $ Class.switchReal (TFTTP C.tfttp) (TFTTP Z.tfttp)
+
+
+newtype TFTTR a = TFTTR {getTFTTR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tfttr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+tfttr = getTFTTR $ Class.switchReal (TFTTR C.tfttr) (TFTTR Z.tfttr)
+
+
+newtype TGEVC a = TGEVC {getTGEVC :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+tgevc :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+tgevc = getTGEVC $ Class.switchReal (TGEVC C.tgevc) (TGEVC Z.tgevc)
+
+
+newtype TGEX2 a = TGEX2 {getTGEX2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgex2 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+tgex2 = getTGEX2 $ Class.switchReal (TGEX2 C.tgex2) (TGEX2 Z.tgex2)
+
+
+newtype TGEXC a = TGEXC {getTGEXC :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgexc :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+tgexc = getTGEXC $ Class.switchReal (TGEXC C.tgexc) (TGEXC Z.tgexc)
+
+
+newtype TGSEN a = TGSEN {getTGSEN :: Ptr CInt -> Ptr Bool -> Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgsen :: Class.Real a => Ptr CInt -> Ptr Bool -> Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+tgsen = getTGSEN $ Class.switchReal (TGSEN C.tgsen) (TGSEN Z.tgsen)
+
+
+newtype TGSJA a = TGSJA {getTGSJA :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgsja :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+tgsja = getTGSJA $ Class.switchReal (TGSJA C.tgsja) (TGSJA Z.tgsja)
+
+
+newtype TGSNA a = TGSNA {getTGSNA :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgsna :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+tgsna = getTGSNA $ Class.switchReal (TGSNA C.tgsna) (TGSNA Z.tgsna)
+
+
+newtype TGSY2 a = TGSY2 {getTGSY2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+tgsy2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+tgsy2 = getTGSY2 $ Class.switchReal (TGSY2 C.tgsy2) (TGSY2 Z.tgsy2)
+
+
+newtype TGSYL a = TGSYL {getTGSYL :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgsyl :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+tgsyl = getTGSYL $ Class.switchReal (TGSYL C.tgsyl) (TGSYL Z.tgsyl)
+
+
+newtype TPCON a = TPCON {getTPCON :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+tpcon :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+tpcon = getTPCON $ Class.switchReal (TPCON C.tpcon) (TPCON Z.tpcon)
+
+
+newtype TPRFS a = TPRFS {getTPRFS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+tprfs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+tprfs = getTPRFS $ Class.switchReal (TPRFS C.tprfs) (TPRFS Z.tprfs)
+
+
+newtype TPTRI a = TPTRI {getTPTRI :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+tptri :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+tptri = getTPTRI $ Class.switchReal (TPTRI C.tptri) (TPTRI Z.tptri)
+
+
+newtype TPTRS a = TPTRS {getTPTRS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tptrs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+tptrs = getTPTRS $ Class.switchReal (TPTRS C.tptrs) (TPTRS Z.tptrs)
+
+
+newtype TPTTF a = TPTTF {getTPTTF :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+tpttf :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+tpttf = getTPTTF $ Class.switchReal (TPTTF C.tpttf) (TPTTF Z.tpttf)
+
+
+newtype TPTTR a = TPTTR {getTPTTR :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tpttr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+tpttr = getTPTTR $ Class.switchReal (TPTTR C.tpttr) (TPTTR Z.tpttr)
+
+
+newtype TRCON a = TRCON {getTRCON :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+trcon :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+trcon = getTRCON $ Class.switchReal (TRCON C.trcon) (TRCON Z.trcon)
+
+
+newtype TREVC a = TREVC {getTREVC :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+trevc :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+trevc = getTREVC $ Class.switchReal (TREVC C.trevc) (TREVC Z.trevc)
+
+
+newtype TREXC a = TREXC {getTREXC :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trexc :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+trexc = getTREXC $ Class.switchReal (TREXC C.trexc) (TREXC Z.trexc)
+
+
+newtype TRRFS a = TRRFS {getTRRFS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()}
+
+trrfs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr a -> Ptr CInt -> IO ()
+trrfs = getTRRFS $ Class.switchReal (TRRFS C.trrfs) (TRRFS Z.trrfs)
+
+
+newtype TRSEN a = TRSEN {getTRSEN :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trsen :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+trsen = getTRSEN $ Class.switchReal (TRSEN C.trsen) (TRSEN Z.trsen)
+
+
+newtype TRSNA a = TRSNA {getTRSNA :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+trsna :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+trsna = getTRSNA $ Class.switchReal (TRSNA C.trsna) (TRSNA Z.trsna)
+
+
+newtype TRSYL a = TRSYL {getTRSYL :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+trsyl :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+trsyl = getTRSYL $ Class.switchReal (TRSYL C.trsyl) (TRSYL Z.trsyl)
+
+
+newtype TRTI2 a = TRTI2 {getTRTI2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trti2 :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+trti2 = getTRTI2 $ Class.switchReal (TRTI2 C.trti2) (TRTI2 Z.trti2)
+
+
+newtype TRTRI a = TRTRI {getTRTRI :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trtri :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+trtri = getTRTRI $ Class.switchReal (TRTRI C.trtri) (TRTRI Z.trtri)
+
+
+newtype TRTRS a = TRTRS {getTRTRS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trtrs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+trtrs = getTRTRS $ Class.switchReal (TRTRS C.trtrs) (TRTRS Z.trtrs)
+
+
+newtype TRTTF a = TRTTF {getTRTTF :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+trttf :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+trttf = getTRTTF $ Class.switchReal (TRTTF C.trttf) (TRTTF Z.trttf)
+
+
+newtype TRTTP a = TRTTP {getTRTTP :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+trttp :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+trttp = getTRTTP $ Class.switchReal (TRTTP C.trttp) (TRTTP Z.trttp)
+
+
+newtype TZRZF a = TZRZF {getTZRZF :: Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tzrzf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+tzrzf = getTZRZF $ Class.switchReal (TZRZF C.tzrzf) (TZRZF Z.tzrzf)
+
+
+newtype UNBDB a = UNBDB {getUNBDB :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+unbdb :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr a -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+unbdb = getUNBDB $ Class.switchReal (UNBDB C.unbdb) (UNBDB Z.unbdb)
+
+
+newtype UNCSD a = UNCSD {getUNCSD :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+uncsd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+uncsd = getUNCSD $ Class.switchReal (UNCSD C.uncsd) (UNCSD Z.uncsd)
+
+
+newtype UNG2L a = UNG2L {getUNG2L :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+ung2l :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+ung2l = getUNG2L $ Class.switchReal (UNG2L C.ung2l) (UNG2L Z.ung2l)
+
+
+newtype UNG2R a = UNG2R {getUNG2R :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+ung2r :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+ung2r = getUNG2R $ Class.switchReal (UNG2R C.ung2r) (UNG2R Z.ung2r)
+
+
+newtype UNGBR a = UNGBR {getUNGBR :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ungbr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+ungbr = getUNGBR $ Class.switchReal (UNGBR C.ungbr) (UNGBR Z.ungbr)
+
+
+newtype UNGHR a = UNGHR {getUNGHR :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+unghr :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+unghr = getUNGHR $ Class.switchReal (UNGHR C.unghr) (UNGHR Z.unghr)
+
+
+newtype UNGL2 a = UNGL2 {getUNGL2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+ungl2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+ungl2 = getUNGL2 $ Class.switchReal (UNGL2 C.ungl2) (UNGL2 Z.ungl2)
+
+
+newtype UNGLQ a = UNGLQ {getUNGLQ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+unglq :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+unglq = getUNGLQ $ Class.switchReal (UNGLQ C.unglq) (UNGLQ Z.unglq)
+
+
+newtype UNGQL a = UNGQL {getUNGQL :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ungql :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+ungql = getUNGQL $ Class.switchReal (UNGQL C.ungql) (UNGQL Z.ungql)
+
+
+newtype UNGQR a = UNGQR {getUNGQR :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ungqr :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+ungqr = getUNGQR $ Class.switchReal (UNGQR C.ungqr) (UNGQR Z.ungqr)
+
+
+newtype UNGR2 a = UNGR2 {getUNGR2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+ungr2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> IO ()
+ungr2 = getUNGR2 $ Class.switchReal (UNGR2 C.ungr2) (UNGR2 Z.ungr2)
+
+
+newtype UNGRQ a = UNGRQ {getUNGRQ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ungrq :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+ungrq = getUNGRQ $ Class.switchReal (UNGRQ C.ungrq) (UNGRQ Z.ungrq)
+
+
+newtype UNGTR a = UNGTR {getUNGTR :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ungtr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+ungtr = getUNGTR $ Class.switchReal (UNGTR C.ungtr) (UNGTR Z.ungtr)
+
+
+newtype UNM2L a = UNM2L {getUNM2L :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+unm2l :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+unm2l = getUNM2L $ Class.switchReal (UNM2L C.unm2l) (UNM2L Z.unm2l)
+
+
+newtype UNM2R a = UNM2R {getUNM2R :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+unm2r :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+unm2r = getUNM2R $ Class.switchReal (UNM2R C.unm2r) (UNM2R Z.unm2r)
+
+
+newtype UNMBR a = UNMBR {getUNMBR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+unmbr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+unmbr = getUNMBR $ Class.switchReal (UNMBR C.unmbr) (UNMBR Z.unmbr)
+
+
+newtype UNMHR a = UNMHR {getUNMHR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+unmhr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+unmhr = getUNMHR $ Class.switchReal (UNMHR C.unmhr) (UNMHR Z.unmhr)
+
+
+newtype UNML2 a = UNML2 {getUNML2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+unml2 :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+unml2 = getUNML2 $ Class.switchReal (UNML2 C.unml2) (UNML2 Z.unml2)
+
+
+newtype UNMLQ a = UNMLQ {getUNMLQ :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+unmlq :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+unmlq = getUNMLQ $ Class.switchReal (UNMLQ C.unmlq) (UNMLQ Z.unmlq)
+
+
+newtype UNMQL a = UNMQL {getUNMQL :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+unmql :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+unmql = getUNMQL $ Class.switchReal (UNMQL C.unmql) (UNMQL Z.unmql)
+
+
+newtype UNMQR a = UNMQR {getUNMQR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+unmqr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+unmqr = getUNMQR $ Class.switchReal (UNMQR C.unmqr) (UNMQR Z.unmqr)
+
+
+newtype UNMR2 a = UNMR2 {getUNMR2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+unmr2 :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+unmr2 = getUNMR2 $ Class.switchReal (UNMR2 C.unmr2) (UNMR2 Z.unmr2)
+
+
+newtype UNMR3 a = UNMR3 {getUNMR3 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+unmr3 :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+unmr3 = getUNMR3 $ Class.switchReal (UNMR3 C.unmr3) (UNMR3 Z.unmr3)
+
+
+newtype UNMRQ a = UNMRQ {getUNMRQ :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+unmrq :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+unmrq = getUNMRQ $ Class.switchReal (UNMRQ C.unmrq) (UNMRQ Z.unmrq)
+
+
+newtype UNMRZ a = UNMRZ {getUNMRZ :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+unmrz :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+unmrz = getUNMRZ $ Class.switchReal (UNMRZ C.unmrz) (UNMRZ Z.unmrz)
+
+
+newtype UNMTR a = UNMTR {getUNMTR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()}
+
+unmtr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> Ptr CInt -> IO ()
+unmtr = getUNMTR $ Class.switchReal (UNMTR C.unmtr) (UNMTR Z.unmtr)
+
+
+newtype UPGTR a = UPGTR {getUPGTR :: Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+upgtr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+upgtr = getUPGTR $ Class.switchReal (UPGTR C.upgtr) (UPGTR Z.upgtr)
+
+
+newtype UPMTR a = UPMTR {getUPMTR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()}
+
+upmtr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr (Complex a) -> Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO ()
+upmtr = getUPMTR $ Class.switchReal (UPMTR C.upmtr) (UPMTR Z.upmtr)
diff --git a/src/Numeric/LAPACK/FFI/ComplexDouble.hs b/src/Numeric/LAPACK/FFI/ComplexDouble.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/LAPACK/FFI/ComplexDouble.hs
@@ -0,0 +1,1408 @@
+-- Do not edit! Automatically generated by create-lapack-ffi.
+{-# LANGUAGE ForeignFunctionInterface #-}
+module Numeric.LAPACK.FFI.ComplexDouble where
+
+import Data.Complex (Complex)
+import Foreign.Ptr (FunPtr, Ptr)
+import Foreign.C.Types
+
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zbbcsd.f>
+foreign import ccall "zbbcsd_"
+   bbcsd :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zbdsqr.f>
+foreign import ccall "zbdsqr_"
+   bdsqr :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zcgesv.f>
+foreign import ccall "zcgesv_"
+   cgesv :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Float) -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zcposv.f>
+foreign import ccall "zcposv_"
+   cposv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Float) -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgbbrd.f>
+foreign import ccall "zgbbrd_"
+   gbbrd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgbcon.f>
+foreign import ccall "zgbcon_"
+   gbcon :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgbequ.f>
+foreign import ccall "zgbequ_"
+   gbequ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgbequb.f>
+foreign import ccall "zgbequb_"
+   gbequb :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgbrfs.f>
+foreign import ccall "zgbrfs_"
+   gbrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgbsv.f>
+foreign import ccall "zgbsv_"
+   gbsv :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgbsvx.f>
+foreign import ccall "zgbsvx_"
+   gbsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgbtf2.f>
+foreign import ccall "zgbtf2_"
+   gbtf2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgbtrf.f>
+foreign import ccall "zgbtrf_"
+   gbtrf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgbtrs.f>
+foreign import ccall "zgbtrs_"
+   gbtrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgebak.f>
+foreign import ccall "zgebak_"
+   gebak :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgebal.f>
+foreign import ccall "zgebal_"
+   gebal :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgebd2.f>
+foreign import ccall "zgebd2_"
+   gebd2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgebrd.f>
+foreign import ccall "zgebrd_"
+   gebrd :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgecon.f>
+foreign import ccall "zgecon_"
+   gecon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeequ.f>
+foreign import ccall "zgeequ_"
+   geequ :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeequb.f>
+foreign import ccall "zgeequb_"
+   geequb :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgees.f>
+foreign import ccall "zgees_"
+   gees :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex Double) -> IO Bool) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeesx.f>
+foreign import ccall "zgeesx_"
+   geesx :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex Double) -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeev.f>
+foreign import ccall "zgeev_"
+   geev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeevx.f>
+foreign import ccall "zgeevx_"
+   geevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgehd2.f>
+foreign import ccall "zgehd2_"
+   gehd2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgehrd.f>
+foreign import ccall "zgehrd_"
+   gehrd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgelq2.f>
+foreign import ccall "zgelq2_"
+   gelq2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgelqf.f>
+foreign import ccall "zgelqf_"
+   gelqf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgels.f>
+foreign import ccall "zgels_"
+   gels :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgelsd.f>
+foreign import ccall "zgelsd_"
+   gelsd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgelss.f>
+foreign import ccall "zgelss_"
+   gelss :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgelsy.f>
+foreign import ccall "zgelsy_"
+   gelsy :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeql2.f>
+foreign import ccall "zgeql2_"
+   geql2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeqlf.f>
+foreign import ccall "zgeqlf_"
+   geqlf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeqp3.f>
+foreign import ccall "zgeqp3_"
+   geqp3 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeqr2.f>
+foreign import ccall "zgeqr2_"
+   geqr2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeqr2p.f>
+foreign import ccall "zgeqr2p_"
+   geqr2p :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeqrf.f>
+foreign import ccall "zgeqrf_"
+   geqrf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgeqrfp.f>
+foreign import ccall "zgeqrfp_"
+   geqrfp :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgerfs.f>
+foreign import ccall "zgerfs_"
+   gerfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgerq2.f>
+foreign import ccall "zgerq2_"
+   gerq2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgerqf.f>
+foreign import ccall "zgerqf_"
+   gerqf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgesc2.f>
+foreign import ccall "zgesc2_"
+   gesc2 :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgesdd.f>
+foreign import ccall "zgesdd_"
+   gesdd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgesv.f>
+foreign import ccall "zgesv_"
+   gesv :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgesvd.f>
+foreign import ccall "zgesvd_"
+   gesvd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgesvx.f>
+foreign import ccall "zgesvx_"
+   gesvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgetc2.f>
+foreign import ccall "zgetc2_"
+   getc2 :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgetf2.f>
+foreign import ccall "zgetf2_"
+   getf2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgetrf.f>
+foreign import ccall "zgetrf_"
+   getrf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgetri.f>
+foreign import ccall "zgetri_"
+   getri :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgetrs.f>
+foreign import ccall "zgetrs_"
+   getrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zggbak.f>
+foreign import ccall "zggbak_"
+   ggbak :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zggbal.f>
+foreign import ccall "zggbal_"
+   ggbal :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgges.f>
+foreign import ccall "zgges_"
+   gges :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex Double) -> Ptr (Complex Double) -> IO Bool) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zggesx.f>
+foreign import ccall "zggesx_"
+   ggesx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex Double) -> Ptr (Complex Double) -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zggev.f>
+foreign import ccall "zggev_"
+   ggev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zggevx.f>
+foreign import ccall "zggevx_"
+   ggevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zggglm.f>
+foreign import ccall "zggglm_"
+   ggglm :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgghrd.f>
+foreign import ccall "zgghrd_"
+   gghrd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgglse.f>
+foreign import ccall "zgglse_"
+   gglse :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zggqrf.f>
+foreign import ccall "zggqrf_"
+   ggqrf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zggrqf.f>
+foreign import ccall "zggrqf_"
+   ggrqf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgtcon.f>
+foreign import ccall "zgtcon_"
+   gtcon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgtrfs.f>
+foreign import ccall "zgtrfs_"
+   gtrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgtsv.f>
+foreign import ccall "zgtsv_"
+   gtsv :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgtsvx.f>
+foreign import ccall "zgtsvx_"
+   gtsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgttrf.f>
+foreign import ccall "zgttrf_"
+   gttrf :: Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgttrs.f>
+foreign import ccall "zgttrs_"
+   gttrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgtts2.f>
+foreign import ccall "zgtts2_"
+   gtts2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhbev.f>
+foreign import ccall "zhbev_"
+   hbev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhbevd.f>
+foreign import ccall "zhbevd_"
+   hbevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhbevx.f>
+foreign import ccall "zhbevx_"
+   hbevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhbgst.f>
+foreign import ccall "zhbgst_"
+   hbgst :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhbgv.f>
+foreign import ccall "zhbgv_"
+   hbgv :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhbgvd.f>
+foreign import ccall "zhbgvd_"
+   hbgvd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhbgvx.f>
+foreign import ccall "zhbgvx_"
+   hbgvx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhbtrd.f>
+foreign import ccall "zhbtrd_"
+   hbtrd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhecon.f>
+foreign import ccall "zhecon_"
+   hecon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zheequb.f>
+foreign import ccall "zheequb_"
+   heequb :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zheev.f>
+foreign import ccall "zheev_"
+   heev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zheevd.f>
+foreign import ccall "zheevd_"
+   heevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zheevr.f>
+foreign import ccall "zheevr_"
+   heevr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zheevx.f>
+foreign import ccall "zheevx_"
+   heevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhegs2.f>
+foreign import ccall "zhegs2_"
+   hegs2 :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhegst.f>
+foreign import ccall "zhegst_"
+   hegst :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhegv.f>
+foreign import ccall "zhegv_"
+   hegv :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhegvd.f>
+foreign import ccall "zhegvd_"
+   hegvd :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhegvx.f>
+foreign import ccall "zhegvx_"
+   hegvx :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zherfs.f>
+foreign import ccall "zherfs_"
+   herfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhesv.f>
+foreign import ccall "zhesv_"
+   hesv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhesvx.f>
+foreign import ccall "zhesvx_"
+   hesvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zheswapr.f>
+foreign import ccall "zheswapr_"
+   heswapr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetd2.f>
+foreign import ccall "zhetd2_"
+   hetd2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetf2.f>
+foreign import ccall "zhetf2_"
+   hetf2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetrd.f>
+foreign import ccall "zhetrd_"
+   hetrd :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetrf.f>
+foreign import ccall "zhetrf_"
+   hetrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetri.f>
+foreign import ccall "zhetri_"
+   hetri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetri2.f>
+foreign import ccall "zhetri2_"
+   hetri2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetri2x.f>
+foreign import ccall "zhetri2x_"
+   hetri2x :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetrs.f>
+foreign import ccall "zhetrs_"
+   hetrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetrs2.f>
+foreign import ccall "zhetrs2_"
+   hetrs2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhfrk.f>
+foreign import ccall "zhfrk_"
+   hfrk :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhgeqz.f>
+foreign import ccall "zhgeqz_"
+   hgeqz :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhpcon.f>
+foreign import ccall "zhpcon_"
+   hpcon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhpev.f>
+foreign import ccall "zhpev_"
+   hpev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhpevd.f>
+foreign import ccall "zhpevd_"
+   hpevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhpevx.f>
+foreign import ccall "zhpevx_"
+   hpevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhpgst.f>
+foreign import ccall "zhpgst_"
+   hpgst :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhpgv.f>
+foreign import ccall "zhpgv_"
+   hpgv :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhpgvd.f>
+foreign import ccall "zhpgvd_"
+   hpgvd :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhpgvx.f>
+foreign import ccall "zhpgvx_"
+   hpgvx :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhprfs.f>
+foreign import ccall "zhprfs_"
+   hprfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhpsv.f>
+foreign import ccall "zhpsv_"
+   hpsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhpsvx.f>
+foreign import ccall "zhpsvx_"
+   hpsvx :: 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 CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhptrd.f>
+foreign import ccall "zhptrd_"
+   hptrd :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhptrf.f>
+foreign import ccall "zhptrf_"
+   hptrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhptri.f>
+foreign import ccall "zhptri_"
+   hptri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhptrs.f>
+foreign import ccall "zhptrs_"
+   hptrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhsein.f>
+foreign import ccall "zhsein_"
+   hsein :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhseqr.f>
+foreign import ccall "zhseqr_"
+   hseqr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilazlc.f>
+foreign import ccall "ilazlc_"
+   ilalc :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilazlr.f>
+foreign import ccall "ilazlr_"
+   ilalr :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/izmax1.f>
+foreign import ccall "izmax1_"
+   imax1 :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlabrd.f>
+foreign import ccall "zlabrd_"
+   labrd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlacgv.f>
+foreign import ccall "zlacgv_"
+   lacgv :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlacn2.f>
+foreign import ccall "zlacn2_"
+   lacn2 :: Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlacon.f>
+foreign import ccall "zlacon_"
+   lacon :: Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlacp2.f>
+foreign import ccall "zlacp2_"
+   lacp2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlacpy.f>
+foreign import ccall "zlacpy_"
+   lacpy :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlacrm.f>
+foreign import ccall "zlacrm_"
+   lacrm :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlacrt.f>
+foreign import ccall "zlacrt_"
+   lacrt :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaed0.f>
+foreign import ccall "zlaed0_"
+   laed0 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaed7.f>
+foreign import ccall "zlaed7_"
+   laed7 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaed8.f>
+foreign import ccall "zlaed8_"
+   laed8 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaein.f>
+foreign import ccall "zlaein_"
+   laein :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaesy.f>
+foreign import ccall "zlaesy_"
+   laesy :: Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaev2.f>
+foreign import ccall "zlaev2_"
+   laev2 :: Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlag2c.f>
+foreign import ccall "zlag2c_"
+   lag2c :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlags2.f>
+foreign import ccall "zlags2_"
+   lags2 :: Ptr Bool -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlagtm.f>
+foreign import ccall "zlagtm_"
+   lagtm :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlahef.f>
+foreign import ccall "zlahef_"
+   lahef :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlahqr.f>
+foreign import ccall "zlahqr_"
+   lahqr :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlahr2.f>
+foreign import ccall "zlahr2_"
+   lahr2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaic1.f>
+foreign import ccall "zlaic1_"
+   laic1 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlals0.f>
+foreign import ccall "zlals0_"
+   lals0 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlalsa.f>
+foreign import ccall "zlalsa_"
+   lalsa :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlalsd.f>
+foreign import ccall "zlalsd_"
+   lalsd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlangb.f>
+foreign import ccall "zlangb_"
+   langb :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlange.f>
+foreign import ccall "zlange_"
+   lange :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlangt.f>
+foreign import ccall "zlangt_"
+   langt :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlanhb.f>
+foreign import ccall "zlanhb_"
+   lanhb :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlanhe.f>
+foreign import ccall "zlanhe_"
+   lanhe :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlanhf.f>
+foreign import ccall "zlanhf_"
+   lanhf :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlanhp.f>
+foreign import ccall "zlanhp_"
+   lanhp :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlanhs.f>
+foreign import ccall "zlanhs_"
+   lanhs :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlanht.f>
+foreign import ccall "zlanht_"
+   lanht :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlansb.f>
+foreign import ccall "zlansb_"
+   lansb :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlansp.f>
+foreign import ccall "zlansp_"
+   lansp :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlansy.f>
+foreign import ccall "zlansy_"
+   lansy :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlantb.f>
+foreign import ccall "zlantb_"
+   lantb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlantp.f>
+foreign import ccall "zlantp_"
+   lantp :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlantr.f>
+foreign import ccall "zlantr_"
+   lantr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlapll.f>
+foreign import ccall "zlapll_"
+   lapll :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlapmr.f>
+foreign import ccall "zlapmr_"
+   lapmr :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlapmt.f>
+foreign import ccall "zlapmt_"
+   lapmt :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqgb.f>
+foreign import ccall "zlaqgb_"
+   laqgb :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqge.f>
+foreign import ccall "zlaqge_"
+   laqge :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqhb.f>
+foreign import ccall "zlaqhb_"
+   laqhb :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqhe.f>
+foreign import ccall "zlaqhe_"
+   laqhe :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqhp.f>
+foreign import ccall "zlaqhp_"
+   laqhp :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqp2.f>
+foreign import ccall "zlaqp2_"
+   laqp2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqps.f>
+foreign import ccall "zlaqps_"
+   laqps :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqr0.f>
+foreign import ccall "zlaqr0_"
+   laqr0 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqr1.f>
+foreign import ccall "zlaqr1_"
+   laqr1 :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqr2.f>
+foreign import ccall "zlaqr2_"
+   laqr2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqr3.f>
+foreign import ccall "zlaqr3_"
+   laqr3 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqr4.f>
+foreign import ccall "zlaqr4_"
+   laqr4 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqr5.f>
+foreign import ccall "zlaqr5_"
+   laqr5 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqsb.f>
+foreign import ccall "zlaqsb_"
+   laqsb :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqsp.f>
+foreign import ccall "zlaqsp_"
+   laqsp :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaqsy.f>
+foreign import ccall "zlaqsy_"
+   laqsy :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlar1v.f>
+foreign import ccall "zlar1v_"
+   lar1v :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlar2v.f>
+foreign import ccall "zlar2v_"
+   lar2v :: Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarcm.f>
+foreign import ccall "zlarcm_"
+   larcm :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarf.f>
+foreign import ccall "zlarf_"
+   larf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarfb.f>
+foreign import ccall "zlarfb_"
+   larfb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarfg.f>
+foreign import ccall "zlarfg_"
+   larfg :: Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarfgp.f>
+foreign import ccall "zlarfgp_"
+   larfgp :: Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarft.f>
+foreign import ccall "zlarft_"
+   larft :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarfx.f>
+foreign import ccall "zlarfx_"
+   larfx :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlargv.f>
+foreign import ccall "zlargv_"
+   largv :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarnv.f>
+foreign import ccall "zlarnv_"
+   larnv :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarrv.f>
+foreign import ccall "zlarrv_"
+   larrv :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlartg.f>
+foreign import ccall "zlartg_"
+   lartg :: Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlartv.f>
+foreign import ccall "zlartv_"
+   lartv :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarz.f>
+foreign import ccall "zlarz_"
+   larz :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarzb.f>
+foreign import ccall "zlarzb_"
+   larzb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarzt.f>
+foreign import ccall "zlarzt_"
+   larzt :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlascl.f>
+foreign import ccall "zlascl_"
+   lascl :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaset.f>
+foreign import ccall "zlaset_"
+   laset :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlasr.f>
+foreign import ccall "zlasr_"
+   lasr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlassq.f>
+foreign import ccall "zlassq_"
+   lassq :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlaswp.f>
+foreign import ccall "zlaswp_"
+   laswp :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlasyf.f>
+foreign import ccall "zlasyf_"
+   lasyf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlat2c.f>
+foreign import ccall "zlat2c_"
+   lat2c :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlatbs.f>
+foreign import ccall "zlatbs_"
+   latbs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlatdf.f>
+foreign import ccall "zlatdf_"
+   latdf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlatps.f>
+foreign import ccall "zlatps_"
+   latps :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlatrd.f>
+foreign import ccall "zlatrd_"
+   latrd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlatrs.f>
+foreign import ccall "zlatrs_"
+   latrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlatrz.f>
+foreign import ccall "zlatrz_"
+   latrz :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlauu2.f>
+foreign import ccall "zlauu2_"
+   lauu2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlauum.f>
+foreign import ccall "zlauum_"
+   lauum :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpbcon.f>
+foreign import ccall "zpbcon_"
+   pbcon :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpbequ.f>
+foreign import ccall "zpbequ_"
+   pbequ :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpbrfs.f>
+foreign import ccall "zpbrfs_"
+   pbrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpbstf.f>
+foreign import ccall "zpbstf_"
+   pbstf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpbsv.f>
+foreign import ccall "zpbsv_"
+   pbsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpbsvx.f>
+foreign import ccall "zpbsvx_"
+   pbsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CChar -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpbtf2.f>
+foreign import ccall "zpbtf2_"
+   pbtf2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpbtrf.f>
+foreign import ccall "zpbtrf_"
+   pbtrf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpbtrs.f>
+foreign import ccall "zpbtrs_"
+   pbtrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpftrf.f>
+foreign import ccall "zpftrf_"
+   pftrf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpftri.f>
+foreign import ccall "zpftri_"
+   pftri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpftrs.f>
+foreign import ccall "zpftrs_"
+   pftrs :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpocon.f>
+foreign import ccall "zpocon_"
+   pocon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpoequ.f>
+foreign import ccall "zpoequ_"
+   poequ :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpoequb.f>
+foreign import ccall "zpoequb_"
+   poequb :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zporfs.f>
+foreign import ccall "zporfs_"
+   porfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zposv.f>
+foreign import ccall "zposv_"
+   posv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zposvx.f>
+foreign import ccall "zposvx_"
+   posvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CChar -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpotf2.f>
+foreign import ccall "zpotf2_"
+   potf2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpotrf.f>
+foreign import ccall "zpotrf_"
+   potrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpotri.f>
+foreign import ccall "zpotri_"
+   potri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpotrs.f>
+foreign import ccall "zpotrs_"
+   potrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zppcon.f>
+foreign import ccall "zppcon_"
+   ppcon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zppequ.f>
+foreign import ccall "zppequ_"
+   ppequ :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpprfs.f>
+foreign import ccall "zpprfs_"
+   pprfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zppsv.f>
+foreign import ccall "zppsv_"
+   ppsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zppsvx.f>
+foreign import ccall "zppsvx_"
+   ppsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CChar -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpptrf.f>
+foreign import ccall "zpptrf_"
+   pptrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpptri.f>
+foreign import ccall "zpptri_"
+   pptri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpptrs.f>
+foreign import ccall "zpptrs_"
+   pptrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpstf2.f>
+foreign import ccall "zpstf2_"
+   pstf2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpstrf.f>
+foreign import ccall "zpstrf_"
+   pstrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zptcon.f>
+foreign import ccall "zptcon_"
+   ptcon :: Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpteqr.f>
+foreign import ccall "zpteqr_"
+   pteqr :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zptrfs.f>
+foreign import ccall "zptrfs_"
+   ptrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zptsv.f>
+foreign import ccall "zptsv_"
+   ptsv :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zptsvx.f>
+foreign import ccall "zptsvx_"
+   ptsvx :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpttrf.f>
+foreign import ccall "zpttrf_"
+   pttrf :: Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpttrs.f>
+foreign import ccall "zpttrs_"
+   pttrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zptts2.f>
+foreign import ccall "zptts2_"
+   ptts2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zrot.f>
+foreign import ccall "zrot_"
+   rot :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zdrscl.f>
+foreign import ccall "zdrscl_"
+   rscl :: Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zspcon.f>
+foreign import ccall "zspcon_"
+   spcon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zspmv.f>
+foreign import ccall "zspmv_"
+   spmv :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zspr.f>
+foreign import ccall "zspr_"
+   spr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsprfs.f>
+foreign import ccall "zsprfs_"
+   sprfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zspsv.f>
+foreign import ccall "zspsv_"
+   spsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zspsvx.f>
+foreign import ccall "zspsvx_"
+   spsvx :: 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 CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsptrf.f>
+foreign import ccall "zsptrf_"
+   sptrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsptri.f>
+foreign import ccall "zsptri_"
+   sptri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsptrs.f>
+foreign import ccall "zsptrs_"
+   sptrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zstedc.f>
+foreign import ccall "zstedc_"
+   stedc :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zstegr.f>
+foreign import ccall "zstegr_"
+   stegr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zstein.f>
+foreign import ccall "zstein_"
+   stein :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zstemr.f>
+foreign import ccall "zstemr_"
+   stemr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsteqr.f>
+foreign import ccall "zsteqr_"
+   steqr :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dzsum1.f>
+foreign import ccall "dzsum1_"
+   sum1 :: Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsycon.f>
+foreign import ccall "zsycon_"
+   sycon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsyconv.f>
+foreign import ccall "zsyconv_"
+   syconv :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsyequb.f>
+foreign import ccall "zsyequb_"
+   syequb :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsymv.f>
+foreign import ccall "zsymv_"
+   symv :: 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 ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsyr.f>
+foreign import ccall "zsyr_"
+   syr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsyrfs.f>
+foreign import ccall "zsyrfs_"
+   syrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsysv.f>
+foreign import ccall "zsysv_"
+   sysv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsysvx.f>
+foreign import ccall "zsysvx_"
+   sysvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsyswapr.f>
+foreign import ccall "zsyswapr_"
+   syswapr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsytf2.f>
+foreign import ccall "zsytf2_"
+   sytf2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsytrf.f>
+foreign import ccall "zsytrf_"
+   sytrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsytri.f>
+foreign import ccall "zsytri_"
+   sytri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsytri2.f>
+foreign import ccall "zsytri2_"
+   sytri2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsytri2x.f>
+foreign import ccall "zsytri2x_"
+   sytri2x :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsytrs.f>
+foreign import ccall "zsytrs_"
+   sytrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsytrs2.f>
+foreign import ccall "zsytrs2_"
+   sytrs2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztbcon.f>
+foreign import ccall "ztbcon_"
+   tbcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztbrfs.f>
+foreign import ccall "ztbrfs_"
+   tbrfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztbtrs.f>
+foreign import ccall "ztbtrs_"
+   tbtrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztfsm.f>
+foreign import ccall "ztfsm_"
+   tfsm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztftri.f>
+foreign import ccall "ztftri_"
+   tftri :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztfttp.f>
+foreign import ccall "ztfttp_"
+   tfttp :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztfttr.f>
+foreign import ccall "ztfttr_"
+   tfttr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztgevc.f>
+foreign import ccall "ztgevc_"
+   tgevc :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztgex2.f>
+foreign import ccall "ztgex2_"
+   tgex2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztgexc.f>
+foreign import ccall "ztgexc_"
+   tgexc :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztgsen.f>
+foreign import ccall "ztgsen_"
+   tgsen :: Ptr CInt -> Ptr Bool -> Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztgsja.f>
+foreign import ccall "ztgsja_"
+   tgsja :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztgsna.f>
+foreign import ccall "ztgsna_"
+   tgsna :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztgsy2.f>
+foreign import ccall "ztgsy2_"
+   tgsy2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztgsyl.f>
+foreign import ccall "ztgsyl_"
+   tgsyl :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztpcon.f>
+foreign import ccall "ztpcon_"
+   tpcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztprfs.f>
+foreign import ccall "ztprfs_"
+   tprfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztptri.f>
+foreign import ccall "ztptri_"
+   tptri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztptrs.f>
+foreign import ccall "ztptrs_"
+   tptrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztpttf.f>
+foreign import ccall "ztpttf_"
+   tpttf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztpttr.f>
+foreign import ccall "ztpttr_"
+   tpttr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrcon.f>
+foreign import ccall "ztrcon_"
+   trcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrevc.f>
+foreign import ccall "ztrevc_"
+   trevc :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrexc.f>
+foreign import ccall "ztrexc_"
+   trexc :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrrfs.f>
+foreign import ccall "ztrrfs_"
+   trrfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrsen.f>
+foreign import ccall "ztrsen_"
+   trsen :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrsna.f>
+foreign import ccall "ztrsna_"
+   trsna :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrsyl.f>
+foreign import ccall "ztrsyl_"
+   trsyl :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrti2.f>
+foreign import ccall "ztrti2_"
+   trti2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrtri.f>
+foreign import ccall "ztrtri_"
+   trtri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrtrs.f>
+foreign import ccall "ztrtrs_"
+   trtrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrttf.f>
+foreign import ccall "ztrttf_"
+   trttf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrttp.f>
+foreign import ccall "ztrttp_"
+   trttp :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztzrzf.f>
+foreign import ccall "ztzrzf_"
+   tzrzf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunbdb.f>
+foreign import ccall "zunbdb_"
+   unbdb :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zuncsd.f>
+foreign import ccall "zuncsd_"
+   uncsd :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zung2l.f>
+foreign import ccall "zung2l_"
+   ung2l :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zung2r.f>
+foreign import ccall "zung2r_"
+   ung2r :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zungbr.f>
+foreign import ccall "zungbr_"
+   ungbr :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunghr.f>
+foreign import ccall "zunghr_"
+   unghr :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zungl2.f>
+foreign import ccall "zungl2_"
+   ungl2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunglq.f>
+foreign import ccall "zunglq_"
+   unglq :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zungql.f>
+foreign import ccall "zungql_"
+   ungql :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zungqr.f>
+foreign import ccall "zungqr_"
+   ungqr :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zungr2.f>
+foreign import ccall "zungr2_"
+   ungr2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zungrq.f>
+foreign import ccall "zungrq_"
+   ungrq :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zungtr.f>
+foreign import ccall "zungtr_"
+   ungtr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunm2l.f>
+foreign import ccall "zunm2l_"
+   unm2l :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunm2r.f>
+foreign import ccall "zunm2r_"
+   unm2r :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunmbr.f>
+foreign import ccall "zunmbr_"
+   unmbr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunmhr.f>
+foreign import ccall "zunmhr_"
+   unmhr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunml2.f>
+foreign import ccall "zunml2_"
+   unml2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunmlq.f>
+foreign import ccall "zunmlq_"
+   unmlq :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunmql.f>
+foreign import ccall "zunmql_"
+   unmql :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunmqr.f>
+foreign import ccall "zunmqr_"
+   unmqr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunmr2.f>
+foreign import ccall "zunmr2_"
+   unmr2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunmr3.f>
+foreign import ccall "zunmr3_"
+   unmr3 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunmrq.f>
+foreign import ccall "zunmrq_"
+   unmrq :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunmrz.f>
+foreign import ccall "zunmrz_"
+   unmrz :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zunmtr.f>
+foreign import ccall "zunmtr_"
+   unmtr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zupgtr.f>
+foreign import ccall "zupgtr_"
+   upgtr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zupmtr.f>
+foreign import ccall "zupmtr_"
+   upmtr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr (Complex Double) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO ()
diff --git a/src/Numeric/LAPACK/FFI/ComplexFloat.hs b/src/Numeric/LAPACK/FFI/ComplexFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/LAPACK/FFI/ComplexFloat.hs
@@ -0,0 +1,1396 @@
+-- Do not edit! Automatically generated by create-lapack-ffi.
+{-# LANGUAGE ForeignFunctionInterface #-}
+module Numeric.LAPACK.FFI.ComplexFloat where
+
+import Data.Complex (Complex)
+import Foreign.Ptr (FunPtr, Ptr)
+import Foreign.C.Types
+
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cbbcsd.f>
+foreign import ccall "cbbcsd_"
+   bbcsd :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cbdsqr.f>
+foreign import ccall "cbdsqr_"
+   bdsqr :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgbbrd.f>
+foreign import ccall "cgbbrd_"
+   gbbrd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgbcon.f>
+foreign import ccall "cgbcon_"
+   gbcon :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgbequ.f>
+foreign import ccall "cgbequ_"
+   gbequ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgbequb.f>
+foreign import ccall "cgbequb_"
+   gbequb :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgbrfs.f>
+foreign import ccall "cgbrfs_"
+   gbrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgbsv.f>
+foreign import ccall "cgbsv_"
+   gbsv :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgbsvx.f>
+foreign import ccall "cgbsvx_"
+   gbsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgbtf2.f>
+foreign import ccall "cgbtf2_"
+   gbtf2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgbtrf.f>
+foreign import ccall "cgbtrf_"
+   gbtrf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgbtrs.f>
+foreign import ccall "cgbtrs_"
+   gbtrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgebak.f>
+foreign import ccall "cgebak_"
+   gebak :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgebal.f>
+foreign import ccall "cgebal_"
+   gebal :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgebd2.f>
+foreign import ccall "cgebd2_"
+   gebd2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgebrd.f>
+foreign import ccall "cgebrd_"
+   gebrd :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgecon.f>
+foreign import ccall "cgecon_"
+   gecon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeequ.f>
+foreign import ccall "cgeequ_"
+   geequ :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeequb.f>
+foreign import ccall "cgeequb_"
+   geequb :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgees.f>
+foreign import ccall "cgees_"
+   gees :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex Float) -> IO Bool) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeesx.f>
+foreign import ccall "cgeesx_"
+   geesx :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex Float) -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeev.f>
+foreign import ccall "cgeev_"
+   geev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeevx.f>
+foreign import ccall "cgeevx_"
+   geevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgehd2.f>
+foreign import ccall "cgehd2_"
+   gehd2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgehrd.f>
+foreign import ccall "cgehrd_"
+   gehrd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgelq2.f>
+foreign import ccall "cgelq2_"
+   gelq2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgelqf.f>
+foreign import ccall "cgelqf_"
+   gelqf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgels.f>
+foreign import ccall "cgels_"
+   gels :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgelsd.f>
+foreign import ccall "cgelsd_"
+   gelsd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgelss.f>
+foreign import ccall "cgelss_"
+   gelss :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgelsy.f>
+foreign import ccall "cgelsy_"
+   gelsy :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeql2.f>
+foreign import ccall "cgeql2_"
+   geql2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeqlf.f>
+foreign import ccall "cgeqlf_"
+   geqlf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeqp3.f>
+foreign import ccall "cgeqp3_"
+   geqp3 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeqr2.f>
+foreign import ccall "cgeqr2_"
+   geqr2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeqr2p.f>
+foreign import ccall "cgeqr2p_"
+   geqr2p :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeqrf.f>
+foreign import ccall "cgeqrf_"
+   geqrf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgeqrfp.f>
+foreign import ccall "cgeqrfp_"
+   geqrfp :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgerfs.f>
+foreign import ccall "cgerfs_"
+   gerfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgerq2.f>
+foreign import ccall "cgerq2_"
+   gerq2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgerqf.f>
+foreign import ccall "cgerqf_"
+   gerqf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgesc2.f>
+foreign import ccall "cgesc2_"
+   gesc2 :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgesdd.f>
+foreign import ccall "cgesdd_"
+   gesdd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgesv.f>
+foreign import ccall "cgesv_"
+   gesv :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgesvd.f>
+foreign import ccall "cgesvd_"
+   gesvd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgesvx.f>
+foreign import ccall "cgesvx_"
+   gesvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgetc2.f>
+foreign import ccall "cgetc2_"
+   getc2 :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgetf2.f>
+foreign import ccall "cgetf2_"
+   getf2 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgetrf.f>
+foreign import ccall "cgetrf_"
+   getrf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgetri.f>
+foreign import ccall "cgetri_"
+   getri :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgetrs.f>
+foreign import ccall "cgetrs_"
+   getrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cggbak.f>
+foreign import ccall "cggbak_"
+   ggbak :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cggbal.f>
+foreign import ccall "cggbal_"
+   ggbal :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgges.f>
+foreign import ccall "cgges_"
+   gges :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex Float) -> Ptr (Complex Float) -> IO Bool) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cggesx.f>
+foreign import ccall "cggesx_"
+   ggesx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr (Complex Float) -> Ptr (Complex Float) -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cggev.f>
+foreign import ccall "cggev_"
+   ggev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cggevx.f>
+foreign import ccall "cggevx_"
+   ggevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cggglm.f>
+foreign import ccall "cggglm_"
+   ggglm :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgghrd.f>
+foreign import ccall "cgghrd_"
+   gghrd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgglse.f>
+foreign import ccall "cgglse_"
+   gglse :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cggqrf.f>
+foreign import ccall "cggqrf_"
+   ggqrf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cggrqf.f>
+foreign import ccall "cggrqf_"
+   ggrqf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgtcon.f>
+foreign import ccall "cgtcon_"
+   gtcon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgtrfs.f>
+foreign import ccall "cgtrfs_"
+   gtrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgtsv.f>
+foreign import ccall "cgtsv_"
+   gtsv :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgtsvx.f>
+foreign import ccall "cgtsvx_"
+   gtsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgttrf.f>
+foreign import ccall "cgttrf_"
+   gttrf :: Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgttrs.f>
+foreign import ccall "cgttrs_"
+   gttrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgtts2.f>
+foreign import ccall "cgtts2_"
+   gtts2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chbev.f>
+foreign import ccall "chbev_"
+   hbev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chbevd.f>
+foreign import ccall "chbevd_"
+   hbevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chbevx.f>
+foreign import ccall "chbevx_"
+   hbevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chbgst.f>
+foreign import ccall "chbgst_"
+   hbgst :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chbgv.f>
+foreign import ccall "chbgv_"
+   hbgv :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chbgvd.f>
+foreign import ccall "chbgvd_"
+   hbgvd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chbgvx.f>
+foreign import ccall "chbgvx_"
+   hbgvx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chbtrd.f>
+foreign import ccall "chbtrd_"
+   hbtrd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/checon.f>
+foreign import ccall "checon_"
+   hecon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cheequb.f>
+foreign import ccall "cheequb_"
+   heequb :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cheev.f>
+foreign import ccall "cheev_"
+   heev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cheevd.f>
+foreign import ccall "cheevd_"
+   heevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cheevr.f>
+foreign import ccall "cheevr_"
+   heevr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cheevx.f>
+foreign import ccall "cheevx_"
+   heevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chegs2.f>
+foreign import ccall "chegs2_"
+   hegs2 :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chegst.f>
+foreign import ccall "chegst_"
+   hegst :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chegv.f>
+foreign import ccall "chegv_"
+   hegv :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chegvd.f>
+foreign import ccall "chegvd_"
+   hegvd :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chegvx.f>
+foreign import ccall "chegvx_"
+   hegvx :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cherfs.f>
+foreign import ccall "cherfs_"
+   herfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chesv.f>
+foreign import ccall "chesv_"
+   hesv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chesvx.f>
+foreign import ccall "chesvx_"
+   hesvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cheswapr.f>
+foreign import ccall "cheswapr_"
+   heswapr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chetd2.f>
+foreign import ccall "chetd2_"
+   hetd2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chetf2.f>
+foreign import ccall "chetf2_"
+   hetf2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chetrd.f>
+foreign import ccall "chetrd_"
+   hetrd :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chetrf.f>
+foreign import ccall "chetrf_"
+   hetrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chetri.f>
+foreign import ccall "chetri_"
+   hetri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chetri2.f>
+foreign import ccall "chetri2_"
+   hetri2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chetri2x.f>
+foreign import ccall "chetri2x_"
+   hetri2x :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chetrs.f>
+foreign import ccall "chetrs_"
+   hetrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chetrs2.f>
+foreign import ccall "chetrs2_"
+   hetrs2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chfrk.f>
+foreign import ccall "chfrk_"
+   hfrk :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chgeqz.f>
+foreign import ccall "chgeqz_"
+   hgeqz :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chpcon.f>
+foreign import ccall "chpcon_"
+   hpcon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chpev.f>
+foreign import ccall "chpev_"
+   hpev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chpevd.f>
+foreign import ccall "chpevd_"
+   hpevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chpevx.f>
+foreign import ccall "chpevx_"
+   hpevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chpgst.f>
+foreign import ccall "chpgst_"
+   hpgst :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chpgv.f>
+foreign import ccall "chpgv_"
+   hpgv :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chpgvd.f>
+foreign import ccall "chpgvd_"
+   hpgvd :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chpgvx.f>
+foreign import ccall "chpgvx_"
+   hpgvx :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chprfs.f>
+foreign import ccall "chprfs_"
+   hprfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chpsv.f>
+foreign import ccall "chpsv_"
+   hpsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chpsvx.f>
+foreign import ccall "chpsvx_"
+   hpsvx :: 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 CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chptrd.f>
+foreign import ccall "chptrd_"
+   hptrd :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chptrf.f>
+foreign import ccall "chptrf_"
+   hptrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chptri.f>
+foreign import ccall "chptri_"
+   hptri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chptrs.f>
+foreign import ccall "chptrs_"
+   hptrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chsein.f>
+foreign import ccall "chsein_"
+   hsein :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chseqr.f>
+foreign import ccall "chseqr_"
+   hseqr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilaclc.f>
+foreign import ccall "ilaclc_"
+   ilalc :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilaclr.f>
+foreign import ccall "ilaclr_"
+   ilalr :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/icmax1.f>
+foreign import ccall "icmax1_"
+   imax1 :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clabrd.f>
+foreign import ccall "clabrd_"
+   labrd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clacgv.f>
+foreign import ccall "clacgv_"
+   lacgv :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clacn2.f>
+foreign import ccall "clacn2_"
+   lacn2 :: Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clacon.f>
+foreign import ccall "clacon_"
+   lacon :: Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clacp2.f>
+foreign import ccall "clacp2_"
+   lacp2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clacpy.f>
+foreign import ccall "clacpy_"
+   lacpy :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clacrm.f>
+foreign import ccall "clacrm_"
+   lacrm :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clacrt.f>
+foreign import ccall "clacrt_"
+   lacrt :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claed0.f>
+foreign import ccall "claed0_"
+   laed0 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claed7.f>
+foreign import ccall "claed7_"
+   laed7 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claed8.f>
+foreign import ccall "claed8_"
+   laed8 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claein.f>
+foreign import ccall "claein_"
+   laein :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claesy.f>
+foreign import ccall "claesy_"
+   laesy :: Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claev2.f>
+foreign import ccall "claev2_"
+   laev2 :: Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clag2z.f>
+foreign import ccall "clag2z_"
+   lag2z :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clags2.f>
+foreign import ccall "clags2_"
+   lags2 :: Ptr Bool -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clagtm.f>
+foreign import ccall "clagtm_"
+   lagtm :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clahef.f>
+foreign import ccall "clahef_"
+   lahef :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clahqr.f>
+foreign import ccall "clahqr_"
+   lahqr :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clahr2.f>
+foreign import ccall "clahr2_"
+   lahr2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claic1.f>
+foreign import ccall "claic1_"
+   laic1 :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clals0.f>
+foreign import ccall "clals0_"
+   lals0 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clalsa.f>
+foreign import ccall "clalsa_"
+   lalsa :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clalsd.f>
+foreign import ccall "clalsd_"
+   lalsd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clangb.f>
+foreign import ccall "clangb_"
+   langb :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clange.f>
+foreign import ccall "clange_"
+   lange :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clangt.f>
+foreign import ccall "clangt_"
+   langt :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clanhb.f>
+foreign import ccall "clanhb_"
+   lanhb :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clanhe.f>
+foreign import ccall "clanhe_"
+   lanhe :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clanhf.f>
+foreign import ccall "clanhf_"
+   lanhf :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clanhp.f>
+foreign import ccall "clanhp_"
+   lanhp :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clanhs.f>
+foreign import ccall "clanhs_"
+   lanhs :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clanht.f>
+foreign import ccall "clanht_"
+   lanht :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clansb.f>
+foreign import ccall "clansb_"
+   lansb :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clansp.f>
+foreign import ccall "clansp_"
+   lansp :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clansy.f>
+foreign import ccall "clansy_"
+   lansy :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clantb.f>
+foreign import ccall "clantb_"
+   lantb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clantp.f>
+foreign import ccall "clantp_"
+   lantp :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clantr.f>
+foreign import ccall "clantr_"
+   lantr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clapll.f>
+foreign import ccall "clapll_"
+   lapll :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clapmr.f>
+foreign import ccall "clapmr_"
+   lapmr :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clapmt.f>
+foreign import ccall "clapmt_"
+   lapmt :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqgb.f>
+foreign import ccall "claqgb_"
+   laqgb :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqge.f>
+foreign import ccall "claqge_"
+   laqge :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqhb.f>
+foreign import ccall "claqhb_"
+   laqhb :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqhe.f>
+foreign import ccall "claqhe_"
+   laqhe :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqhp.f>
+foreign import ccall "claqhp_"
+   laqhp :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqp2.f>
+foreign import ccall "claqp2_"
+   laqp2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqps.f>
+foreign import ccall "claqps_"
+   laqps :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqr0.f>
+foreign import ccall "claqr0_"
+   laqr0 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqr1.f>
+foreign import ccall "claqr1_"
+   laqr1 :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqr2.f>
+foreign import ccall "claqr2_"
+   laqr2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqr3.f>
+foreign import ccall "claqr3_"
+   laqr3 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqr4.f>
+foreign import ccall "claqr4_"
+   laqr4 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqr5.f>
+foreign import ccall "claqr5_"
+   laqr5 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqsb.f>
+foreign import ccall "claqsb_"
+   laqsb :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqsp.f>
+foreign import ccall "claqsp_"
+   laqsp :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claqsy.f>
+foreign import ccall "claqsy_"
+   laqsy :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clar1v.f>
+foreign import ccall "clar1v_"
+   lar1v :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clar2v.f>
+foreign import ccall "clar2v_"
+   lar2v :: Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarcm.f>
+foreign import ccall "clarcm_"
+   larcm :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarf.f>
+foreign import ccall "clarf_"
+   larf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarfb.f>
+foreign import ccall "clarfb_"
+   larfb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarfg.f>
+foreign import ccall "clarfg_"
+   larfg :: Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarfgp.f>
+foreign import ccall "clarfgp_"
+   larfgp :: Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarft.f>
+foreign import ccall "clarft_"
+   larft :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarfx.f>
+foreign import ccall "clarfx_"
+   larfx :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clargv.f>
+foreign import ccall "clargv_"
+   largv :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarnv.f>
+foreign import ccall "clarnv_"
+   larnv :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarrv.f>
+foreign import ccall "clarrv_"
+   larrv :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clartg.f>
+foreign import ccall "clartg_"
+   lartg :: Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clartv.f>
+foreign import ccall "clartv_"
+   lartv :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarz.f>
+foreign import ccall "clarz_"
+   larz :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarzb.f>
+foreign import ccall "clarzb_"
+   larzb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarzt.f>
+foreign import ccall "clarzt_"
+   larzt :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clascl.f>
+foreign import ccall "clascl_"
+   lascl :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claset.f>
+foreign import ccall "claset_"
+   laset :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clasr.f>
+foreign import ccall "clasr_"
+   lasr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/classq.f>
+foreign import ccall "classq_"
+   lassq :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/claswp.f>
+foreign import ccall "claswp_"
+   laswp :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clasyf.f>
+foreign import ccall "clasyf_"
+   lasyf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clatbs.f>
+foreign import ccall "clatbs_"
+   latbs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clatdf.f>
+foreign import ccall "clatdf_"
+   latdf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clatps.f>
+foreign import ccall "clatps_"
+   latps :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clatrd.f>
+foreign import ccall "clatrd_"
+   latrd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clatrs.f>
+foreign import ccall "clatrs_"
+   latrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clatrz.f>
+foreign import ccall "clatrz_"
+   latrz :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clauu2.f>
+foreign import ccall "clauu2_"
+   lauu2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clauum.f>
+foreign import ccall "clauum_"
+   lauum :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpbcon.f>
+foreign import ccall "cpbcon_"
+   pbcon :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpbequ.f>
+foreign import ccall "cpbequ_"
+   pbequ :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpbrfs.f>
+foreign import ccall "cpbrfs_"
+   pbrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpbstf.f>
+foreign import ccall "cpbstf_"
+   pbstf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpbsv.f>
+foreign import ccall "cpbsv_"
+   pbsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpbsvx.f>
+foreign import ccall "cpbsvx_"
+   pbsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CChar -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpbtf2.f>
+foreign import ccall "cpbtf2_"
+   pbtf2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpbtrf.f>
+foreign import ccall "cpbtrf_"
+   pbtrf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpbtrs.f>
+foreign import ccall "cpbtrs_"
+   pbtrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpftrf.f>
+foreign import ccall "cpftrf_"
+   pftrf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpftri.f>
+foreign import ccall "cpftri_"
+   pftri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpftrs.f>
+foreign import ccall "cpftrs_"
+   pftrs :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpocon.f>
+foreign import ccall "cpocon_"
+   pocon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpoequ.f>
+foreign import ccall "cpoequ_"
+   poequ :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpoequb.f>
+foreign import ccall "cpoequb_"
+   poequb :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cporfs.f>
+foreign import ccall "cporfs_"
+   porfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cposv.f>
+foreign import ccall "cposv_"
+   posv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cposvx.f>
+foreign import ccall "cposvx_"
+   posvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CChar -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpotf2.f>
+foreign import ccall "cpotf2_"
+   potf2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpotrf.f>
+foreign import ccall "cpotrf_"
+   potrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpotri.f>
+foreign import ccall "cpotri_"
+   potri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpotrs.f>
+foreign import ccall "cpotrs_"
+   potrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cppcon.f>
+foreign import ccall "cppcon_"
+   ppcon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cppequ.f>
+foreign import ccall "cppequ_"
+   ppequ :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpprfs.f>
+foreign import ccall "cpprfs_"
+   pprfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cppsv.f>
+foreign import ccall "cppsv_"
+   ppsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cppsvx.f>
+foreign import ccall "cppsvx_"
+   ppsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CChar -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpptrf.f>
+foreign import ccall "cpptrf_"
+   pptrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpptri.f>
+foreign import ccall "cpptri_"
+   pptri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpptrs.f>
+foreign import ccall "cpptrs_"
+   pptrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpstf2.f>
+foreign import ccall "cpstf2_"
+   pstf2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpstrf.f>
+foreign import ccall "cpstrf_"
+   pstrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cptcon.f>
+foreign import ccall "cptcon_"
+   ptcon :: Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpteqr.f>
+foreign import ccall "cpteqr_"
+   pteqr :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cptrfs.f>
+foreign import ccall "cptrfs_"
+   ptrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cptsv.f>
+foreign import ccall "cptsv_"
+   ptsv :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cptsvx.f>
+foreign import ccall "cptsvx_"
+   ptsvx :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpttrf.f>
+foreign import ccall "cpttrf_"
+   pttrf :: Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cpttrs.f>
+foreign import ccall "cpttrs_"
+   pttrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cptts2.f>
+foreign import ccall "cptts2_"
+   ptts2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/crot.f>
+foreign import ccall "crot_"
+   rot :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csrscl.f>
+foreign import ccall "csrscl_"
+   rscl :: Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cspcon.f>
+foreign import ccall "cspcon_"
+   spcon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cspmv.f>
+foreign import ccall "cspmv_"
+   spmv :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cspr.f>
+foreign import ccall "cspr_"
+   spr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csprfs.f>
+foreign import ccall "csprfs_"
+   sprfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cspsv.f>
+foreign import ccall "cspsv_"
+   spsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cspsvx.f>
+foreign import ccall "cspsvx_"
+   spsvx :: 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 CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csptrf.f>
+foreign import ccall "csptrf_"
+   sptrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csptri.f>
+foreign import ccall "csptri_"
+   sptri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csptrs.f>
+foreign import ccall "csptrs_"
+   sptrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cstedc.f>
+foreign import ccall "cstedc_"
+   stedc :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cstegr.f>
+foreign import ccall "cstegr_"
+   stegr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cstein.f>
+foreign import ccall "cstein_"
+   stein :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cstemr.f>
+foreign import ccall "cstemr_"
+   stemr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csteqr.f>
+foreign import ccall "csteqr_"
+   steqr :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/scsum1.f>
+foreign import ccall "scsum1_"
+   sum1 :: Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csycon.f>
+foreign import ccall "csycon_"
+   sycon :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csyconv.f>
+foreign import ccall "csyconv_"
+   syconv :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csyequb.f>
+foreign import ccall "csyequb_"
+   syequb :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csymv.f>
+foreign import ccall "csymv_"
+   symv :: 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 ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csyr.f>
+foreign import ccall "csyr_"
+   syr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csyrfs.f>
+foreign import ccall "csyrfs_"
+   syrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csysv.f>
+foreign import ccall "csysv_"
+   sysv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csysvx.f>
+foreign import ccall "csysvx_"
+   sysvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csyswapr.f>
+foreign import ccall "csyswapr_"
+   syswapr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csytf2.f>
+foreign import ccall "csytf2_"
+   sytf2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csytrf.f>
+foreign import ccall "csytrf_"
+   sytrf :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csytri.f>
+foreign import ccall "csytri_"
+   sytri :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csytri2.f>
+foreign import ccall "csytri2_"
+   sytri2 :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csytri2x.f>
+foreign import ccall "csytri2x_"
+   sytri2x :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csytrs.f>
+foreign import ccall "csytrs_"
+   sytrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/csytrs2.f>
+foreign import ccall "csytrs2_"
+   sytrs2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctbcon.f>
+foreign import ccall "ctbcon_"
+   tbcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctbrfs.f>
+foreign import ccall "ctbrfs_"
+   tbrfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctbtrs.f>
+foreign import ccall "ctbtrs_"
+   tbtrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctfsm.f>
+foreign import ccall "ctfsm_"
+   tfsm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctftri.f>
+foreign import ccall "ctftri_"
+   tftri :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctfttp.f>
+foreign import ccall "ctfttp_"
+   tfttp :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctfttr.f>
+foreign import ccall "ctfttr_"
+   tfttr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctgevc.f>
+foreign import ccall "ctgevc_"
+   tgevc :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctgex2.f>
+foreign import ccall "ctgex2_"
+   tgex2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctgexc.f>
+foreign import ccall "ctgexc_"
+   tgexc :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctgsen.f>
+foreign import ccall "ctgsen_"
+   tgsen :: Ptr CInt -> Ptr Bool -> Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctgsja.f>
+foreign import ccall "ctgsja_"
+   tgsja :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctgsna.f>
+foreign import ccall "ctgsna_"
+   tgsna :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctgsy2.f>
+foreign import ccall "ctgsy2_"
+   tgsy2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctgsyl.f>
+foreign import ccall "ctgsyl_"
+   tgsyl :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctpcon.f>
+foreign import ccall "ctpcon_"
+   tpcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctprfs.f>
+foreign import ccall "ctprfs_"
+   tprfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctptri.f>
+foreign import ccall "ctptri_"
+   tptri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctptrs.f>
+foreign import ccall "ctptrs_"
+   tptrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctpttf.f>
+foreign import ccall "ctpttf_"
+   tpttf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctpttr.f>
+foreign import ccall "ctpttr_"
+   tpttr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrcon.f>
+foreign import ccall "ctrcon_"
+   trcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrevc.f>
+foreign import ccall "ctrevc_"
+   trevc :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrexc.f>
+foreign import ccall "ctrexc_"
+   trexc :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrrfs.f>
+foreign import ccall "ctrrfs_"
+   trrfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrsen.f>
+foreign import ccall "ctrsen_"
+   trsen :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrsna.f>
+foreign import ccall "ctrsna_"
+   trsna :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrsyl.f>
+foreign import ccall "ctrsyl_"
+   trsyl :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrti2.f>
+foreign import ccall "ctrti2_"
+   trti2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrtri.f>
+foreign import ccall "ctrtri_"
+   trtri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrtrs.f>
+foreign import ccall "ctrtrs_"
+   trtrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrttf.f>
+foreign import ccall "ctrttf_"
+   trttf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctrttp.f>
+foreign import ccall "ctrttp_"
+   trttp :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctzrzf.f>
+foreign import ccall "ctzrzf_"
+   tzrzf :: Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunbdb.f>
+foreign import ccall "cunbdb_"
+   unbdb :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cuncsd.f>
+foreign import ccall "cuncsd_"
+   uncsd :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cung2l.f>
+foreign import ccall "cung2l_"
+   ung2l :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cung2r.f>
+foreign import ccall "cung2r_"
+   ung2r :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cungbr.f>
+foreign import ccall "cungbr_"
+   ungbr :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunghr.f>
+foreign import ccall "cunghr_"
+   unghr :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cungl2.f>
+foreign import ccall "cungl2_"
+   ungl2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunglq.f>
+foreign import ccall "cunglq_"
+   unglq :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cungql.f>
+foreign import ccall "cungql_"
+   ungql :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cungqr.f>
+foreign import ccall "cungqr_"
+   ungqr :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cungr2.f>
+foreign import ccall "cungr2_"
+   ungr2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cungrq.f>
+foreign import ccall "cungrq_"
+   ungrq :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cungtr.f>
+foreign import ccall "cungtr_"
+   ungtr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunm2l.f>
+foreign import ccall "cunm2l_"
+   unm2l :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunm2r.f>
+foreign import ccall "cunm2r_"
+   unm2r :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunmbr.f>
+foreign import ccall "cunmbr_"
+   unmbr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunmhr.f>
+foreign import ccall "cunmhr_"
+   unmhr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunml2.f>
+foreign import ccall "cunml2_"
+   unml2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunmlq.f>
+foreign import ccall "cunmlq_"
+   unmlq :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunmql.f>
+foreign import ccall "cunmql_"
+   unmql :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunmqr.f>
+foreign import ccall "cunmqr_"
+   unmqr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunmr2.f>
+foreign import ccall "cunmr2_"
+   unmr2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunmr3.f>
+foreign import ccall "cunmr3_"
+   unmr3 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunmrq.f>
+foreign import ccall "cunmrq_"
+   unmrq :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunmrz.f>
+foreign import ccall "cunmrz_"
+   unmrz :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunmtr.f>
+foreign import ccall "cunmtr_"
+   unmtr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cupgtr.f>
+foreign import ccall "cupgtr_"
+   upgtr :: Ptr CChar -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cupmtr.f>
+foreign import ccall "cupmtr_"
+   upmtr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr (Complex Float) -> Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO ()
diff --git a/src/Numeric/LAPACK/FFI/Double.hs b/src/Numeric/LAPACK/FFI/Double.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/LAPACK/FFI/Double.hs
@@ -0,0 +1,1531 @@
+-- Do not edit! Automatically generated by create-lapack-ffi.
+{-# LANGUAGE ForeignFunctionInterface #-}
+module Numeric.LAPACK.FFI.Double where
+
+import Foreign.Ptr (FunPtr, Ptr)
+import Foreign.C.Types
+
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dbbcsd.f>
+foreign import ccall "dbbcsd_"
+   bbcsd :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dbdsdc.f>
+foreign import ccall "dbdsdc_"
+   bdsdc :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dbdsqr.f>
+foreign import ccall "dbdsqr_"
+   bdsqr :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ddisna.f>
+foreign import ccall "ddisna_"
+   disna :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgbbrd.f>
+foreign import ccall "dgbbrd_"
+   gbbrd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgbcon.f>
+foreign import ccall "dgbcon_"
+   gbcon :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgbequ.f>
+foreign import ccall "dgbequ_"
+   gbequ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgbequb.f>
+foreign import ccall "dgbequb_"
+   gbequb :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgbrfs.f>
+foreign import ccall "dgbrfs_"
+   gbrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgbsv.f>
+foreign import ccall "dgbsv_"
+   gbsv :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgbsvx.f>
+foreign import ccall "dgbsvx_"
+   gbsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgbtf2.f>
+foreign import ccall "dgbtf2_"
+   gbtf2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgbtrf.f>
+foreign import ccall "dgbtrf_"
+   gbtrf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgbtrs.f>
+foreign import ccall "dgbtrs_"
+   gbtrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgebak.f>
+foreign import ccall "dgebak_"
+   gebak :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgebal.f>
+foreign import ccall "dgebal_"
+   gebal :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgebd2.f>
+foreign import ccall "dgebd2_"
+   gebd2 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgebrd.f>
+foreign import ccall "dgebrd_"
+   gebrd :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgecon.f>
+foreign import ccall "dgecon_"
+   gecon :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeequ.f>
+foreign import ccall "dgeequ_"
+   geequ :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeequb.f>
+foreign import ccall "dgeequb_"
+   geequb :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgees.f>
+foreign import ccall "dgees_"
+   gees :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr Double -> Ptr Double -> IO Bool) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeesx.f>
+foreign import ccall "dgeesx_"
+   geesx :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr Double -> Ptr Double -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeev.f>
+foreign import ccall "dgeev_"
+   geev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeevx.f>
+foreign import ccall "dgeevx_"
+   geevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgehd2.f>
+foreign import ccall "dgehd2_"
+   gehd2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgehrd.f>
+foreign import ccall "dgehrd_"
+   gehrd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgejsv.f>
+foreign import ccall "dgejsv_"
+   gejsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgelq2.f>
+foreign import ccall "dgelq2_"
+   gelq2 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgelqf.f>
+foreign import ccall "dgelqf_"
+   gelqf :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgels.f>
+foreign import ccall "dgels_"
+   gels :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgelsd.f>
+foreign import ccall "dgelsd_"
+   gelsd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgelss.f>
+foreign import ccall "dgelss_"
+   gelss :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgelsy.f>
+foreign import ccall "dgelsy_"
+   gelsy :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeql2.f>
+foreign import ccall "dgeql2_"
+   geql2 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeqlf.f>
+foreign import ccall "dgeqlf_"
+   geqlf :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeqp3.f>
+foreign import ccall "dgeqp3_"
+   geqp3 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeqr2.f>
+foreign import ccall "dgeqr2_"
+   geqr2 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeqr2p.f>
+foreign import ccall "dgeqr2p_"
+   geqr2p :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeqrf.f>
+foreign import ccall "dgeqrf_"
+   geqrf :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeqrfp.f>
+foreign import ccall "dgeqrfp_"
+   geqrfp :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgerfs.f>
+foreign import ccall "dgerfs_"
+   gerfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgerq2.f>
+foreign import ccall "dgerq2_"
+   gerq2 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgerqf.f>
+foreign import ccall "dgerqf_"
+   gerqf :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgesc2.f>
+foreign import ccall "dgesc2_"
+   gesc2 :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgesdd.f>
+foreign import ccall "dgesdd_"
+   gesdd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgesv.f>
+foreign import ccall "dgesv_"
+   gesv :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgesvd.f>
+foreign import ccall "dgesvd_"
+   gesvd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgesvj.f>
+foreign import ccall "dgesvj_"
+   gesvj :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgesvx.f>
+foreign import ccall "dgesvx_"
+   gesvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgetc2.f>
+foreign import ccall "dgetc2_"
+   getc2 :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgetf2.f>
+foreign import ccall "dgetf2_"
+   getf2 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgetrf.f>
+foreign import ccall "dgetrf_"
+   getrf :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgetri.f>
+foreign import ccall "dgetri_"
+   getri :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgetrs.f>
+foreign import ccall "dgetrs_"
+   getrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dggbak.f>
+foreign import ccall "dggbak_"
+   ggbak :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dggbal.f>
+foreign import ccall "dggbal_"
+   ggbal :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgges.f>
+foreign import ccall "dgges_"
+   gges :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr Double -> Ptr Double -> Ptr Double -> IO Bool) -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dggesx.f>
+foreign import ccall "dggesx_"
+   ggesx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr Double -> Ptr Double -> Ptr Double -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dggev.f>
+foreign import ccall "dggev_"
+   ggev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dggevx.f>
+foreign import ccall "dggevx_"
+   ggevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dggglm.f>
+foreign import ccall "dggglm_"
+   ggglm :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgghrd.f>
+foreign import ccall "dgghrd_"
+   gghrd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgglse.f>
+foreign import ccall "dgglse_"
+   gglse :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dggqrf.f>
+foreign import ccall "dggqrf_"
+   ggqrf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dggrqf.f>
+foreign import ccall "dggrqf_"
+   ggrqf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgsvj0.f>
+foreign import ccall "dgsvj0_"
+   gsvj0 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgsvj1.f>
+foreign import ccall "dgsvj1_"
+   gsvj1 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgtcon.f>
+foreign import ccall "dgtcon_"
+   gtcon :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgtrfs.f>
+foreign import ccall "dgtrfs_"
+   gtrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgtsv.f>
+foreign import ccall "dgtsv_"
+   gtsv :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgtsvx.f>
+foreign import ccall "dgtsvx_"
+   gtsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgttrf.f>
+foreign import ccall "dgttrf_"
+   gttrf :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgttrs.f>
+foreign import ccall "dgttrs_"
+   gttrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgtts2.f>
+foreign import ccall "dgtts2_"
+   gtts2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dhgeqz.f>
+foreign import ccall "dhgeqz_"
+   hgeqz :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dhsein.f>
+foreign import ccall "dhsein_"
+   hsein :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dhseqr.f>
+foreign import ccall "dhseqr_"
+   hseqr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/iladlc.f>
+foreign import ccall "iladlc_"
+   ilalc :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/iladlr.f>
+foreign import ccall "iladlr_"
+   ilalr :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/disnan.f>
+foreign import ccall "disnan_"
+   isnan :: Ptr Double -> IO Bool
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlabad.f>
+foreign import ccall "dlabad_"
+   labad :: Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlabrd.f>
+foreign import ccall "dlabrd_"
+   labrd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlacn2.f>
+foreign import ccall "dlacn2_"
+   lacn2 :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlacon.f>
+foreign import ccall "dlacon_"
+   lacon :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlacpy.f>
+foreign import ccall "dlacpy_"
+   lacpy :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dladiv.f>
+foreign import ccall "dladiv_"
+   ladiv :: Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlae2.f>
+foreign import ccall "dlae2_"
+   lae2 :: Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaebz.f>
+foreign import ccall "dlaebz_"
+   laebz :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed0.f>
+foreign import ccall "dlaed0_"
+   laed0 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed1.f>
+foreign import ccall "dlaed1_"
+   laed1 :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed2.f>
+foreign import ccall "dlaed2_"
+   laed2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed3.f>
+foreign import ccall "dlaed3_"
+   laed3 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed4.f>
+foreign import ccall "dlaed4_"
+   laed4 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed5.f>
+foreign import ccall "dlaed5_"
+   laed5 :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed6.f>
+foreign import ccall "dlaed6_"
+   laed6 :: Ptr CInt -> Ptr Bool -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed7.f>
+foreign import ccall "dlaed7_"
+   laed7 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed8.f>
+foreign import ccall "dlaed8_"
+   laed8 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed9.f>
+foreign import ccall "dlaed9_"
+   laed9 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaeda.f>
+foreign import ccall "dlaeda_"
+   laeda :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaein.f>
+foreign import ccall "dlaein_"
+   laein :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaev2.f>
+foreign import ccall "dlaev2_"
+   laev2 :: Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaexc.f>
+foreign import ccall "dlaexc_"
+   laexc :: Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlag2.f>
+foreign import ccall "dlag2_"
+   lag2 :: Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlag2s.f>
+foreign import ccall "dlag2s_"
+   lag2s :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlags2.f>
+foreign import ccall "dlags2_"
+   lags2 :: Ptr Bool -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlagtf.f>
+foreign import ccall "dlagtf_"
+   lagtf :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlagtm.f>
+foreign import ccall "dlagtm_"
+   lagtm :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlagts.f>
+foreign import ccall "dlagts_"
+   lagts :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlagv2.f>
+foreign import ccall "dlagv2_"
+   lagv2 :: Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlahqr.f>
+foreign import ccall "dlahqr_"
+   lahqr :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlahr2.f>
+foreign import ccall "dlahr2_"
+   lahr2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaic1.f>
+foreign import ccall "dlaic1_"
+   laic1 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaisnan.f>
+foreign import ccall "dlaisnan_"
+   laisnan :: Ptr Double -> Ptr Double -> IO Bool
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaln2.f>
+foreign import ccall "dlaln2_"
+   laln2 :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlals0.f>
+foreign import ccall "dlals0_"
+   lals0 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlalsa.f>
+foreign import ccall "dlalsa_"
+   lalsa :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlalsd.f>
+foreign import ccall "dlalsd_"
+   lalsd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlamrg.f>
+foreign import ccall "dlamrg_"
+   lamrg :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaneg.f>
+foreign import ccall "dlaneg_"
+   laneg :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlangb.f>
+foreign import ccall "dlangb_"
+   langb :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlange.f>
+foreign import ccall "dlange_"
+   lange :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlangt.f>
+foreign import ccall "dlangt_"
+   langt :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlanhs.f>
+foreign import ccall "dlanhs_"
+   lanhs :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlansb.f>
+foreign import ccall "dlansb_"
+   lansb :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlansf.f>
+foreign import ccall "dlansf_"
+   lansf :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlansp.f>
+foreign import ccall "dlansp_"
+   lansp :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlanst.f>
+foreign import ccall "dlanst_"
+   lanst :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlansy.f>
+foreign import ccall "dlansy_"
+   lansy :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlantb.f>
+foreign import ccall "dlantb_"
+   lantb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlantp.f>
+foreign import ccall "dlantp_"
+   lantp :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlantr.f>
+foreign import ccall "dlantr_"
+   lantr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlanv2.f>
+foreign import ccall "dlanv2_"
+   lanv2 :: Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlapll.f>
+foreign import ccall "dlapll_"
+   lapll :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlapmr.f>
+foreign import ccall "dlapmr_"
+   lapmr :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlapmt.f>
+foreign import ccall "dlapmt_"
+   lapmt :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlapy2.f>
+foreign import ccall "dlapy2_"
+   lapy2 :: Ptr Double -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlapy3.f>
+foreign import ccall "dlapy3_"
+   lapy3 :: Ptr Double -> Ptr Double -> Ptr Double -> IO Double
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqgb.f>
+foreign import ccall "dlaqgb_"
+   laqgb :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqge.f>
+foreign import ccall "dlaqge_"
+   laqge :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqp2.f>
+foreign import ccall "dlaqp2_"
+   laqp2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqps.f>
+foreign import ccall "dlaqps_"
+   laqps :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr0.f>
+foreign import ccall "dlaqr0_"
+   laqr0 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr1.f>
+foreign import ccall "dlaqr1_"
+   laqr1 :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr2.f>
+foreign import ccall "dlaqr2_"
+   laqr2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr3.f>
+foreign import ccall "dlaqr3_"
+   laqr3 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr4.f>
+foreign import ccall "dlaqr4_"
+   laqr4 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr5.f>
+foreign import ccall "dlaqr5_"
+   laqr5 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqsb.f>
+foreign import ccall "dlaqsb_"
+   laqsb :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqsp.f>
+foreign import ccall "dlaqsp_"
+   laqsp :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqsy.f>
+foreign import ccall "dlaqsy_"
+   laqsy :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqtr.f>
+foreign import ccall "dlaqtr_"
+   laqtr :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlar1v.f>
+foreign import ccall "dlar1v_"
+   lar1v :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlar2v.f>
+foreign import ccall "dlar2v_"
+   lar2v :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarf.f>
+foreign import ccall "dlarf_"
+   larf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarfb.f>
+foreign import ccall "dlarfb_"
+   larfb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarfg.f>
+foreign import ccall "dlarfg_"
+   larfg :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarfgp.f>
+foreign import ccall "dlarfgp_"
+   larfgp :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarft.f>
+foreign import ccall "dlarft_"
+   larft :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarfx.f>
+foreign import ccall "dlarfx_"
+   larfx :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlargv.f>
+foreign import ccall "dlargv_"
+   largv :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarnv.f>
+foreign import ccall "dlarnv_"
+   larnv :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarra.f>
+foreign import ccall "dlarra_"
+   larra :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarrb.f>
+foreign import ccall "dlarrb_"
+   larrb :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarrc.f>
+foreign import ccall "dlarrc_"
+   larrc :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarrd.f>
+foreign import ccall "dlarrd_"
+   larrd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarre.f>
+foreign import ccall "dlarre_"
+   larre :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarrf.f>
+foreign import ccall "dlarrf_"
+   larrf :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarrj.f>
+foreign import ccall "dlarrj_"
+   larrj :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarrk.f>
+foreign import ccall "dlarrk_"
+   larrk :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarrr.f>
+foreign import ccall "dlarrr_"
+   larrr :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarrv.f>
+foreign import ccall "dlarrv_"
+   larrv :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlartg.f>
+foreign import ccall "dlartg_"
+   lartg :: Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlartgp.f>
+foreign import ccall "dlartgp_"
+   lartgp :: Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlartgs.f>
+foreign import ccall "dlartgs_"
+   lartgs :: Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlartv.f>
+foreign import ccall "dlartv_"
+   lartv :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaruv.f>
+foreign import ccall "dlaruv_"
+   laruv :: Ptr CInt -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarz.f>
+foreign import ccall "dlarz_"
+   larz :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarzb.f>
+foreign import ccall "dlarzb_"
+   larzb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarzt.f>
+foreign import ccall "dlarzt_"
+   larzt :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlas2.f>
+foreign import ccall "dlas2_"
+   las2 :: Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlascl.f>
+foreign import ccall "dlascl_"
+   lascl :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasd0.f>
+foreign import ccall "dlasd0_"
+   lasd0 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasd1.f>
+foreign import ccall "dlasd1_"
+   lasd1 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasd2.f>
+foreign import ccall "dlasd2_"
+   lasd2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasd3.f>
+foreign import ccall "dlasd3_"
+   lasd3 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasd4.f>
+foreign import ccall "dlasd4_"
+   lasd4 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasd5.f>
+foreign import ccall "dlasd5_"
+   lasd5 :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasd6.f>
+foreign import ccall "dlasd6_"
+   lasd6 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasd7.f>
+foreign import ccall "dlasd7_"
+   lasd7 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasd8.f>
+foreign import ccall "dlasd8_"
+   lasd8 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasda.f>
+foreign import ccall "dlasda_"
+   lasda :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasdq.f>
+foreign import ccall "dlasdq_"
+   lasdq :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasdt.f>
+foreign import ccall "dlasdt_"
+   lasdt :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaset.f>
+foreign import ccall "dlaset_"
+   laset :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasq1.f>
+foreign import ccall "dlasq1_"
+   lasq1 :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasq2.f>
+foreign import ccall "dlasq2_"
+   lasq2 :: Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasq4.f>
+foreign import ccall "dlasq4_"
+   lasq4 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasq5.f>
+foreign import ccall "dlasq5_"
+   lasq5 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Bool -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasq6.f>
+foreign import ccall "dlasq6_"
+   lasq6 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasr.f>
+foreign import ccall "dlasr_"
+   lasr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasrt.f>
+foreign import ccall "dlasrt_"
+   lasrt :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlassq.f>
+foreign import ccall "dlassq_"
+   lassq :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasv2.f>
+foreign import ccall "dlasv2_"
+   lasv2 :: Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaswp.f>
+foreign import ccall "dlaswp_"
+   laswp :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasy2.f>
+foreign import ccall "dlasy2_"
+   lasy2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasyf.f>
+foreign import ccall "dlasyf_"
+   lasyf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlat2s.f>
+foreign import ccall "dlat2s_"
+   lat2s :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlatbs.f>
+foreign import ccall "dlatbs_"
+   latbs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlatdf.f>
+foreign import ccall "dlatdf_"
+   latdf :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlatps.f>
+foreign import ccall "dlatps_"
+   latps :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlatrd.f>
+foreign import ccall "dlatrd_"
+   latrd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlatrs.f>
+foreign import ccall "dlatrs_"
+   latrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlatrz.f>
+foreign import ccall "dlatrz_"
+   latrz :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlauu2.f>
+foreign import ccall "dlauu2_"
+   lauu2 :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlauum.f>
+foreign import ccall "dlauum_"
+   lauum :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dopgtr.f>
+foreign import ccall "dopgtr_"
+   opgtr :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dopmtr.f>
+foreign import ccall "dopmtr_"
+   opmtr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorbdb.f>
+foreign import ccall "dorbdb_"
+   orbdb :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorcsd.f>
+foreign import ccall "dorcsd_"
+   orcsd :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorg2l.f>
+foreign import ccall "dorg2l_"
+   org2l :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorg2r.f>
+foreign import ccall "dorg2r_"
+   org2r :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorgbr.f>
+foreign import ccall "dorgbr_"
+   orgbr :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorghr.f>
+foreign import ccall "dorghr_"
+   orghr :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorgl2.f>
+foreign import ccall "dorgl2_"
+   orgl2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorglq.f>
+foreign import ccall "dorglq_"
+   orglq :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorgql.f>
+foreign import ccall "dorgql_"
+   orgql :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorgqr.f>
+foreign import ccall "dorgqr_"
+   orgqr :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorgr2.f>
+foreign import ccall "dorgr2_"
+   orgr2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorgrq.f>
+foreign import ccall "dorgrq_"
+   orgrq :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorgtr.f>
+foreign import ccall "dorgtr_"
+   orgtr :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorm2l.f>
+foreign import ccall "dorm2l_"
+   orm2l :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorm2r.f>
+foreign import ccall "dorm2r_"
+   orm2r :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dormbr.f>
+foreign import ccall "dormbr_"
+   ormbr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dormhr.f>
+foreign import ccall "dormhr_"
+   ormhr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorml2.f>
+foreign import ccall "dorml2_"
+   orml2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dormlq.f>
+foreign import ccall "dormlq_"
+   ormlq :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dormql.f>
+foreign import ccall "dormql_"
+   ormql :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dormqr.f>
+foreign import ccall "dormqr_"
+   ormqr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dormr2.f>
+foreign import ccall "dormr2_"
+   ormr2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dormr3.f>
+foreign import ccall "dormr3_"
+   ormr3 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dormrq.f>
+foreign import ccall "dormrq_"
+   ormrq :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dormrz.f>
+foreign import ccall "dormrz_"
+   ormrz :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dormtr.f>
+foreign import ccall "dormtr_"
+   ormtr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpbcon.f>
+foreign import ccall "dpbcon_"
+   pbcon :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpbequ.f>
+foreign import ccall "dpbequ_"
+   pbequ :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpbrfs.f>
+foreign import ccall "dpbrfs_"
+   pbrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpbstf.f>
+foreign import ccall "dpbstf_"
+   pbstf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpbsv.f>
+foreign import ccall "dpbsv_"
+   pbsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpbsvx.f>
+foreign import ccall "dpbsvx_"
+   pbsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CChar -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpbtf2.f>
+foreign import ccall "dpbtf2_"
+   pbtf2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpbtrf.f>
+foreign import ccall "dpbtrf_"
+   pbtrf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpbtrs.f>
+foreign import ccall "dpbtrs_"
+   pbtrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpftrf.f>
+foreign import ccall "dpftrf_"
+   pftrf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpftri.f>
+foreign import ccall "dpftri_"
+   pftri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpftrs.f>
+foreign import ccall "dpftrs_"
+   pftrs :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpocon.f>
+foreign import ccall "dpocon_"
+   pocon :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpoequ.f>
+foreign import ccall "dpoequ_"
+   poequ :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpoequb.f>
+foreign import ccall "dpoequb_"
+   poequb :: Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dporfs.f>
+foreign import ccall "dporfs_"
+   porfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dposv.f>
+foreign import ccall "dposv_"
+   posv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dposvx.f>
+foreign import ccall "dposvx_"
+   posvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CChar -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpotf2.f>
+foreign import ccall "dpotf2_"
+   potf2 :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpotrf.f>
+foreign import ccall "dpotrf_"
+   potrf :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpotri.f>
+foreign import ccall "dpotri_"
+   potri :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpotrs.f>
+foreign import ccall "dpotrs_"
+   potrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dppcon.f>
+foreign import ccall "dppcon_"
+   ppcon :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dppequ.f>
+foreign import ccall "dppequ_"
+   ppequ :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpprfs.f>
+foreign import ccall "dpprfs_"
+   pprfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dppsv.f>
+foreign import ccall "dppsv_"
+   ppsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dppsvx.f>
+foreign import ccall "dppsvx_"
+   ppsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CChar -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpptrf.f>
+foreign import ccall "dpptrf_"
+   pptrf :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpptri.f>
+foreign import ccall "dpptri_"
+   pptri :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpptrs.f>
+foreign import ccall "dpptrs_"
+   pptrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpstf2.f>
+foreign import ccall "dpstf2_"
+   pstf2 :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpstrf.f>
+foreign import ccall "dpstrf_"
+   pstrf :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dptcon.f>
+foreign import ccall "dptcon_"
+   ptcon :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpteqr.f>
+foreign import ccall "dpteqr_"
+   pteqr :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dptrfs.f>
+foreign import ccall "dptrfs_"
+   ptrfs :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dptsv.f>
+foreign import ccall "dptsv_"
+   ptsv :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dptsvx.f>
+foreign import ccall "dptsvx_"
+   ptsvx :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpttrf.f>
+foreign import ccall "dpttrf_"
+   pttrf :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpttrs.f>
+foreign import ccall "dpttrs_"
+   pttrs :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dptts2.f>
+foreign import ccall "dptts2_"
+   ptts2 :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/drscl.f>
+foreign import ccall "drscl_"
+   rscl :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsbev.f>
+foreign import ccall "dsbev_"
+   sbev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsbevd.f>
+foreign import ccall "dsbevd_"
+   sbevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsbevx.f>
+foreign import ccall "dsbevx_"
+   sbevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsbgst.f>
+foreign import ccall "dsbgst_"
+   sbgst :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsbgv.f>
+foreign import ccall "dsbgv_"
+   sbgv :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsbgvd.f>
+foreign import ccall "dsbgvd_"
+   sbgvd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsbgvx.f>
+foreign import ccall "dsbgvx_"
+   sbgvx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsbtrd.f>
+foreign import ccall "dsbtrd_"
+   sbtrd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsfrk.f>
+foreign import ccall "dsfrk_"
+   sfrk :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsgesv.f>
+foreign import ccall "dsgesv_"
+   sgesv :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dspcon.f>
+foreign import ccall "dspcon_"
+   spcon :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dspev.f>
+foreign import ccall "dspev_"
+   spev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dspevd.f>
+foreign import ccall "dspevd_"
+   spevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dspevx.f>
+foreign import ccall "dspevx_"
+   spevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dspgst.f>
+foreign import ccall "dspgst_"
+   spgst :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dspgv.f>
+foreign import ccall "dspgv_"
+   spgv :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dspgvd.f>
+foreign import ccall "dspgvd_"
+   spgvd :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dspgvx.f>
+foreign import ccall "dspgvx_"
+   spgvx :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsposv.f>
+foreign import ccall "dsposv_"
+   sposv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsprfs.f>
+foreign import ccall "dsprfs_"
+   sprfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dspsv.f>
+foreign import ccall "dspsv_"
+   spsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dspsvx.f>
+foreign import ccall "dspsvx_"
+   spsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsptrd.f>
+foreign import ccall "dsptrd_"
+   sptrd :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsptrf.f>
+foreign import ccall "dsptrf_"
+   sptrf :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsptri.f>
+foreign import ccall "dsptri_"
+   sptri :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsptrs.f>
+foreign import ccall "dsptrs_"
+   sptrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstebz.f>
+foreign import ccall "dstebz_"
+   stebz :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstedc.f>
+foreign import ccall "dstedc_"
+   stedc :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstegr.f>
+foreign import ccall "dstegr_"
+   stegr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstein.f>
+foreign import ccall "dstein_"
+   stein :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstemr.f>
+foreign import ccall "dstemr_"
+   stemr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsteqr.f>
+foreign import ccall "dsteqr_"
+   steqr :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsterf.f>
+foreign import ccall "dsterf_"
+   sterf :: Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstev.f>
+foreign import ccall "dstev_"
+   stev :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstevd.f>
+foreign import ccall "dstevd_"
+   stevd :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstevr.f>
+foreign import ccall "dstevr_"
+   stevr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstevx.f>
+foreign import ccall "dstevx_"
+   stevx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsycon.f>
+foreign import ccall "dsycon_"
+   sycon :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsyconv.f>
+foreign import ccall "dsyconv_"
+   syconv :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsyequb.f>
+foreign import ccall "dsyequb_"
+   syequb :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsyev.f>
+foreign import ccall "dsyev_"
+   syev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsyevd.f>
+foreign import ccall "dsyevd_"
+   syevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsyevr.f>
+foreign import ccall "dsyevr_"
+   syevr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsyevx.f>
+foreign import ccall "dsyevx_"
+   syevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsygs2.f>
+foreign import ccall "dsygs2_"
+   sygs2 :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsygst.f>
+foreign import ccall "dsygst_"
+   sygst :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsygv.f>
+foreign import ccall "dsygv_"
+   sygv :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsygvd.f>
+foreign import ccall "dsygvd_"
+   sygvd :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsygvx.f>
+foreign import ccall "dsygvx_"
+   sygvx :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsyrfs.f>
+foreign import ccall "dsyrfs_"
+   syrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsysv.f>
+foreign import ccall "dsysv_"
+   sysv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsysvx.f>
+foreign import ccall "dsysvx_"
+   sysvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsyswapr.f>
+foreign import ccall "dsyswapr_"
+   syswapr :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsytd2.f>
+foreign import ccall "dsytd2_"
+   sytd2 :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsytf2.f>
+foreign import ccall "dsytf2_"
+   sytf2 :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsytrd.f>
+foreign import ccall "dsytrd_"
+   sytrd :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsytrf.f>
+foreign import ccall "dsytrf_"
+   sytrf :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsytri.f>
+foreign import ccall "dsytri_"
+   sytri :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsytri2.f>
+foreign import ccall "dsytri2_"
+   sytri2 :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsytri2x.f>
+foreign import ccall "dsytri2x_"
+   sytri2x :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsytrs.f>
+foreign import ccall "dsytrs_"
+   sytrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsytrs2.f>
+foreign import ccall "dsytrs2_"
+   sytrs2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtbcon.f>
+foreign import ccall "dtbcon_"
+   tbcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtbrfs.f>
+foreign import ccall "dtbrfs_"
+   tbrfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtbtrs.f>
+foreign import ccall "dtbtrs_"
+   tbtrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtfsm.f>
+foreign import ccall "dtfsm_"
+   tfsm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtftri.f>
+foreign import ccall "dtftri_"
+   tftri :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtfttp.f>
+foreign import ccall "dtfttp_"
+   tfttp :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtfttr.f>
+foreign import ccall "dtfttr_"
+   tfttr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtgevc.f>
+foreign import ccall "dtgevc_"
+   tgevc :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtgex2.f>
+foreign import ccall "dtgex2_"
+   tgex2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtgexc.f>
+foreign import ccall "dtgexc_"
+   tgexc :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtgsen.f>
+foreign import ccall "dtgsen_"
+   tgsen :: Ptr CInt -> Ptr Bool -> Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtgsja.f>
+foreign import ccall "dtgsja_"
+   tgsja :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtgsna.f>
+foreign import ccall "dtgsna_"
+   tgsna :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtgsy2.f>
+foreign import ccall "dtgsy2_"
+   tgsy2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtgsyl.f>
+foreign import ccall "dtgsyl_"
+   tgsyl :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtpcon.f>
+foreign import ccall "dtpcon_"
+   tpcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtprfs.f>
+foreign import ccall "dtprfs_"
+   tprfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtptri.f>
+foreign import ccall "dtptri_"
+   tptri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtptrs.f>
+foreign import ccall "dtptrs_"
+   tptrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtpttf.f>
+foreign import ccall "dtpttf_"
+   tpttf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtpttr.f>
+foreign import ccall "dtpttr_"
+   tpttr :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrcon.f>
+foreign import ccall "dtrcon_"
+   trcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrevc.f>
+foreign import ccall "dtrevc_"
+   trevc :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrexc.f>
+foreign import ccall "dtrexc_"
+   trexc :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrrfs.f>
+foreign import ccall "dtrrfs_"
+   trrfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrsen.f>
+foreign import ccall "dtrsen_"
+   trsen :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrsna.f>
+foreign import ccall "dtrsna_"
+   trsna :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrsyl.f>
+foreign import ccall "dtrsyl_"
+   trsyl :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrti2.f>
+foreign import ccall "dtrti2_"
+   trti2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrtri.f>
+foreign import ccall "dtrtri_"
+   trtri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrtrs.f>
+foreign import ccall "dtrtrs_"
+   trtrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrttf.f>
+foreign import ccall "dtrttf_"
+   trttf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtrttp.f>
+foreign import ccall "dtrttp_"
+   trttp :: Ptr CChar -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dtzrzf.f>
+foreign import ccall "dtzrzf_"
+   tzrzf :: Ptr CInt -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr Double -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
diff --git a/src/Numeric/LAPACK/FFI/Float.hs b/src/Numeric/LAPACK/FFI/Float.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/LAPACK/FFI/Float.hs
@@ -0,0 +1,1519 @@
+-- Do not edit! Automatically generated by create-lapack-ffi.
+{-# LANGUAGE ForeignFunctionInterface #-}
+module Numeric.LAPACK.FFI.Float where
+
+import Foreign.Ptr (FunPtr, Ptr)
+import Foreign.C.Types
+
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sbbcsd.f>
+foreign import ccall "sbbcsd_"
+   bbcsd :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sbdsdc.f>
+foreign import ccall "sbdsdc_"
+   bdsdc :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sbdsqr.f>
+foreign import ccall "sbdsqr_"
+   bdsqr :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sdisna.f>
+foreign import ccall "sdisna_"
+   disna :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgbbrd.f>
+foreign import ccall "sgbbrd_"
+   gbbrd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgbcon.f>
+foreign import ccall "sgbcon_"
+   gbcon :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgbequ.f>
+foreign import ccall "sgbequ_"
+   gbequ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgbequb.f>
+foreign import ccall "sgbequb_"
+   gbequb :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgbrfs.f>
+foreign import ccall "sgbrfs_"
+   gbrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgbsv.f>
+foreign import ccall "sgbsv_"
+   gbsv :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgbsvx.f>
+foreign import ccall "sgbsvx_"
+   gbsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgbtf2.f>
+foreign import ccall "sgbtf2_"
+   gbtf2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgbtrf.f>
+foreign import ccall "sgbtrf_"
+   gbtrf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgbtrs.f>
+foreign import ccall "sgbtrs_"
+   gbtrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgebak.f>
+foreign import ccall "sgebak_"
+   gebak :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgebal.f>
+foreign import ccall "sgebal_"
+   gebal :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgebd2.f>
+foreign import ccall "sgebd2_"
+   gebd2 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgebrd.f>
+foreign import ccall "sgebrd_"
+   gebrd :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgecon.f>
+foreign import ccall "sgecon_"
+   gecon :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeequ.f>
+foreign import ccall "sgeequ_"
+   geequ :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeequb.f>
+foreign import ccall "sgeequb_"
+   geequb :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgees.f>
+foreign import ccall "sgees_"
+   gees :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr Float -> Ptr Float -> IO Bool) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeesx.f>
+foreign import ccall "sgeesx_"
+   geesx :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr Float -> Ptr Float -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeev.f>
+foreign import ccall "sgeev_"
+   geev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeevx.f>
+foreign import ccall "sgeevx_"
+   geevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgehd2.f>
+foreign import ccall "sgehd2_"
+   gehd2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgehrd.f>
+foreign import ccall "sgehrd_"
+   gehrd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgejsv.f>
+foreign import ccall "sgejsv_"
+   gejsv :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgelq2.f>
+foreign import ccall "sgelq2_"
+   gelq2 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgelqf.f>
+foreign import ccall "sgelqf_"
+   gelqf :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgels.f>
+foreign import ccall "sgels_"
+   gels :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgelsd.f>
+foreign import ccall "sgelsd_"
+   gelsd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgelss.f>
+foreign import ccall "sgelss_"
+   gelss :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgelsy.f>
+foreign import ccall "sgelsy_"
+   gelsy :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeql2.f>
+foreign import ccall "sgeql2_"
+   geql2 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeqlf.f>
+foreign import ccall "sgeqlf_"
+   geqlf :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeqp3.f>
+foreign import ccall "sgeqp3_"
+   geqp3 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeqr2.f>
+foreign import ccall "sgeqr2_"
+   geqr2 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeqr2p.f>
+foreign import ccall "sgeqr2p_"
+   geqr2p :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeqrf.f>
+foreign import ccall "sgeqrf_"
+   geqrf :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgeqrfp.f>
+foreign import ccall "sgeqrfp_"
+   geqrfp :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgerfs.f>
+foreign import ccall "sgerfs_"
+   gerfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgerq2.f>
+foreign import ccall "sgerq2_"
+   gerq2 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgerqf.f>
+foreign import ccall "sgerqf_"
+   gerqf :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgesc2.f>
+foreign import ccall "sgesc2_"
+   gesc2 :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgesdd.f>
+foreign import ccall "sgesdd_"
+   gesdd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgesv.f>
+foreign import ccall "sgesv_"
+   gesv :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgesvd.f>
+foreign import ccall "sgesvd_"
+   gesvd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgesvj.f>
+foreign import ccall "sgesvj_"
+   gesvj :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgesvx.f>
+foreign import ccall "sgesvx_"
+   gesvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgetc2.f>
+foreign import ccall "sgetc2_"
+   getc2 :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgetf2.f>
+foreign import ccall "sgetf2_"
+   getf2 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgetrf.f>
+foreign import ccall "sgetrf_"
+   getrf :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgetri.f>
+foreign import ccall "sgetri_"
+   getri :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgetrs.f>
+foreign import ccall "sgetrs_"
+   getrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sggbak.f>
+foreign import ccall "sggbak_"
+   ggbak :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sggbal.f>
+foreign import ccall "sggbal_"
+   ggbal :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgges.f>
+foreign import ccall "sgges_"
+   gges :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr Float -> Ptr Float -> Ptr Float -> IO Bool) -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sggesx.f>
+foreign import ccall "sggesx_"
+   ggesx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr Float -> Ptr Float -> Ptr Float -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sggev.f>
+foreign import ccall "sggev_"
+   ggev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sggevx.f>
+foreign import ccall "sggevx_"
+   ggevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sggglm.f>
+foreign import ccall "sggglm_"
+   ggglm :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgghrd.f>
+foreign import ccall "sgghrd_"
+   gghrd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgglse.f>
+foreign import ccall "sgglse_"
+   gglse :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sggqrf.f>
+foreign import ccall "sggqrf_"
+   ggqrf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sggrqf.f>
+foreign import ccall "sggrqf_"
+   ggrqf :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgsvj0.f>
+foreign import ccall "sgsvj0_"
+   gsvj0 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgsvj1.f>
+foreign import ccall "sgsvj1_"
+   gsvj1 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgtcon.f>
+foreign import ccall "sgtcon_"
+   gtcon :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgtrfs.f>
+foreign import ccall "sgtrfs_"
+   gtrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgtsv.f>
+foreign import ccall "sgtsv_"
+   gtsv :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgtsvx.f>
+foreign import ccall "sgtsvx_"
+   gtsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgttrf.f>
+foreign import ccall "sgttrf_"
+   gttrf :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgttrs.f>
+foreign import ccall "sgttrs_"
+   gttrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgtts2.f>
+foreign import ccall "sgtts2_"
+   gtts2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/shgeqz.f>
+foreign import ccall "shgeqz_"
+   hgeqz :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/shsein.f>
+foreign import ccall "shsein_"
+   hsein :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/shseqr.f>
+foreign import ccall "shseqr_"
+   hseqr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilaslc.f>
+foreign import ccall "ilaslc_"
+   ilalc :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilaslr.f>
+foreign import ccall "ilaslr_"
+   ilalr :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sisnan.f>
+foreign import ccall "sisnan_"
+   isnan :: Ptr Float -> IO Bool
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slabad.f>
+foreign import ccall "slabad_"
+   labad :: Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slabrd.f>
+foreign import ccall "slabrd_"
+   labrd :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slacn2.f>
+foreign import ccall "slacn2_"
+   lacn2 :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slacon.f>
+foreign import ccall "slacon_"
+   lacon :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slacpy.f>
+foreign import ccall "slacpy_"
+   lacpy :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sladiv.f>
+foreign import ccall "sladiv_"
+   ladiv :: Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slae2.f>
+foreign import ccall "slae2_"
+   lae2 :: Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaebz.f>
+foreign import ccall "slaebz_"
+   laebz :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaed0.f>
+foreign import ccall "slaed0_"
+   laed0 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaed1.f>
+foreign import ccall "slaed1_"
+   laed1 :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaed2.f>
+foreign import ccall "slaed2_"
+   laed2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaed3.f>
+foreign import ccall "slaed3_"
+   laed3 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaed4.f>
+foreign import ccall "slaed4_"
+   laed4 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaed5.f>
+foreign import ccall "slaed5_"
+   laed5 :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaed6.f>
+foreign import ccall "slaed6_"
+   laed6 :: Ptr CInt -> Ptr Bool -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaed7.f>
+foreign import ccall "slaed7_"
+   laed7 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaed8.f>
+foreign import ccall "slaed8_"
+   laed8 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaed9.f>
+foreign import ccall "slaed9_"
+   laed9 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaeda.f>
+foreign import ccall "slaeda_"
+   laeda :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaein.f>
+foreign import ccall "slaein_"
+   laein :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaev2.f>
+foreign import ccall "slaev2_"
+   laev2 :: Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaexc.f>
+foreign import ccall "slaexc_"
+   laexc :: Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slag2.f>
+foreign import ccall "slag2_"
+   lag2 :: Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slag2d.f>
+foreign import ccall "slag2d_"
+   lag2d :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Double -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slags2.f>
+foreign import ccall "slags2_"
+   lags2 :: Ptr Bool -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slagtf.f>
+foreign import ccall "slagtf_"
+   lagtf :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slagtm.f>
+foreign import ccall "slagtm_"
+   lagtm :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slagts.f>
+foreign import ccall "slagts_"
+   lagts :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slagv2.f>
+foreign import ccall "slagv2_"
+   lagv2 :: Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slahqr.f>
+foreign import ccall "slahqr_"
+   lahqr :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slahr2.f>
+foreign import ccall "slahr2_"
+   lahr2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaic1.f>
+foreign import ccall "slaic1_"
+   laic1 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaisnan.f>
+foreign import ccall "slaisnan_"
+   laisnan :: Ptr Float -> Ptr Float -> IO Bool
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaln2.f>
+foreign import ccall "slaln2_"
+   laln2 :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slals0.f>
+foreign import ccall "slals0_"
+   lals0 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slalsa.f>
+foreign import ccall "slalsa_"
+   lalsa :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slalsd.f>
+foreign import ccall "slalsd_"
+   lalsd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slamrg.f>
+foreign import ccall "slamrg_"
+   lamrg :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaneg.f>
+foreign import ccall "slaneg_"
+   laneg :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slangb.f>
+foreign import ccall "slangb_"
+   langb :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slange.f>
+foreign import ccall "slange_"
+   lange :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slangt.f>
+foreign import ccall "slangt_"
+   langt :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slanhs.f>
+foreign import ccall "slanhs_"
+   lanhs :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slansb.f>
+foreign import ccall "slansb_"
+   lansb :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slansf.f>
+foreign import ccall "slansf_"
+   lansf :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slansp.f>
+foreign import ccall "slansp_"
+   lansp :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slanst.f>
+foreign import ccall "slanst_"
+   lanst :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slansy.f>
+foreign import ccall "slansy_"
+   lansy :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slantb.f>
+foreign import ccall "slantb_"
+   lantb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slantp.f>
+foreign import ccall "slantp_"
+   lantp :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slantr.f>
+foreign import ccall "slantr_"
+   lantr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slanv2.f>
+foreign import ccall "slanv2_"
+   lanv2 :: Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slapll.f>
+foreign import ccall "slapll_"
+   lapll :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slapmr.f>
+foreign import ccall "slapmr_"
+   lapmr :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slapmt.f>
+foreign import ccall "slapmt_"
+   lapmt :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slapy2.f>
+foreign import ccall "slapy2_"
+   lapy2 :: Ptr Float -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slapy3.f>
+foreign import ccall "slapy3_"
+   lapy3 :: Ptr Float -> Ptr Float -> Ptr Float -> IO Float
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqgb.f>
+foreign import ccall "slaqgb_"
+   laqgb :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqge.f>
+foreign import ccall "slaqge_"
+   laqge :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqp2.f>
+foreign import ccall "slaqp2_"
+   laqp2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqps.f>
+foreign import ccall "slaqps_"
+   laqps :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqr0.f>
+foreign import ccall "slaqr0_"
+   laqr0 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqr1.f>
+foreign import ccall "slaqr1_"
+   laqr1 :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqr2.f>
+foreign import ccall "slaqr2_"
+   laqr2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqr3.f>
+foreign import ccall "slaqr3_"
+   laqr3 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqr4.f>
+foreign import ccall "slaqr4_"
+   laqr4 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqr5.f>
+foreign import ccall "slaqr5_"
+   laqr5 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqsb.f>
+foreign import ccall "slaqsb_"
+   laqsb :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqsp.f>
+foreign import ccall "slaqsp_"
+   laqsp :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqsy.f>
+foreign import ccall "slaqsy_"
+   laqsy :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CChar -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaqtr.f>
+foreign import ccall "slaqtr_"
+   laqtr :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slar1v.f>
+foreign import ccall "slar1v_"
+   lar1v :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slar2v.f>
+foreign import ccall "slar2v_"
+   lar2v :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarf.f>
+foreign import ccall "slarf_"
+   larf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarfb.f>
+foreign import ccall "slarfb_"
+   larfb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarfg.f>
+foreign import ccall "slarfg_"
+   larfg :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarfgp.f>
+foreign import ccall "slarfgp_"
+   larfgp :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarft.f>
+foreign import ccall "slarft_"
+   larft :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarfx.f>
+foreign import ccall "slarfx_"
+   larfx :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slargv.f>
+foreign import ccall "slargv_"
+   largv :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarnv.f>
+foreign import ccall "slarnv_"
+   larnv :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarra.f>
+foreign import ccall "slarra_"
+   larra :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarrb.f>
+foreign import ccall "slarrb_"
+   larrb :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarrc.f>
+foreign import ccall "slarrc_"
+   larrc :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarrd.f>
+foreign import ccall "slarrd_"
+   larrd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarre.f>
+foreign import ccall "slarre_"
+   larre :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarrf.f>
+foreign import ccall "slarrf_"
+   larrf :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarrj.f>
+foreign import ccall "slarrj_"
+   larrj :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarrk.f>
+foreign import ccall "slarrk_"
+   larrk :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarrr.f>
+foreign import ccall "slarrr_"
+   larrr :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarrv.f>
+foreign import ccall "slarrv_"
+   larrv :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slartg.f>
+foreign import ccall "slartg_"
+   lartg :: Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slartgp.f>
+foreign import ccall "slartgp_"
+   lartgp :: Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slartgs.f>
+foreign import ccall "slartgs_"
+   lartgs :: Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slartv.f>
+foreign import ccall "slartv_"
+   lartv :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaruv.f>
+foreign import ccall "slaruv_"
+   laruv :: Ptr CInt -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarz.f>
+foreign import ccall "slarz_"
+   larz :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarzb.f>
+foreign import ccall "slarzb_"
+   larzb :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarzt.f>
+foreign import ccall "slarzt_"
+   larzt :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slas2.f>
+foreign import ccall "slas2_"
+   las2 :: Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slascl.f>
+foreign import ccall "slascl_"
+   lascl :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasd0.f>
+foreign import ccall "slasd0_"
+   lasd0 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasd1.f>
+foreign import ccall "slasd1_"
+   lasd1 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasd2.f>
+foreign import ccall "slasd2_"
+   lasd2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasd3.f>
+foreign import ccall "slasd3_"
+   lasd3 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasd4.f>
+foreign import ccall "slasd4_"
+   lasd4 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasd5.f>
+foreign import ccall "slasd5_"
+   lasd5 :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasd6.f>
+foreign import ccall "slasd6_"
+   lasd6 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasd7.f>
+foreign import ccall "slasd7_"
+   lasd7 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasd8.f>
+foreign import ccall "slasd8_"
+   lasd8 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasda.f>
+foreign import ccall "slasda_"
+   lasda :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasdq.f>
+foreign import ccall "slasdq_"
+   lasdq :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasdt.f>
+foreign import ccall "slasdt_"
+   lasdt :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaset.f>
+foreign import ccall "slaset_"
+   laset :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasq1.f>
+foreign import ccall "slasq1_"
+   lasq1 :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasq2.f>
+foreign import ccall "slasq2_"
+   lasq2 :: Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasq4.f>
+foreign import ccall "slasq4_"
+   lasq4 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasq5.f>
+foreign import ccall "slasq5_"
+   lasq5 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Bool -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasq6.f>
+foreign import ccall "slasq6_"
+   lasq6 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasr.f>
+foreign import ccall "slasr_"
+   lasr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasrt.f>
+foreign import ccall "slasrt_"
+   lasrt :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slassq.f>
+foreign import ccall "slassq_"
+   lassq :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasv2.f>
+foreign import ccall "slasv2_"
+   lasv2 :: Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaswp.f>
+foreign import ccall "slaswp_"
+   laswp :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasy2.f>
+foreign import ccall "slasy2_"
+   lasy2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slasyf.f>
+foreign import ccall "slasyf_"
+   lasyf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slatbs.f>
+foreign import ccall "slatbs_"
+   latbs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slatdf.f>
+foreign import ccall "slatdf_"
+   latdf :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slatps.f>
+foreign import ccall "slatps_"
+   latps :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slatrd.f>
+foreign import ccall "slatrd_"
+   latrd :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slatrs.f>
+foreign import ccall "slatrs_"
+   latrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slatrz.f>
+foreign import ccall "slatrz_"
+   latrz :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slauu2.f>
+foreign import ccall "slauu2_"
+   lauu2 :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slauum.f>
+foreign import ccall "slauum_"
+   lauum :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sopgtr.f>
+foreign import ccall "sopgtr_"
+   opgtr :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sopmtr.f>
+foreign import ccall "sopmtr_"
+   opmtr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorbdb.f>
+foreign import ccall "sorbdb_"
+   orbdb :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorcsd.f>
+foreign import ccall "sorcsd_"
+   orcsd :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorg2l.f>
+foreign import ccall "sorg2l_"
+   org2l :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorg2r.f>
+foreign import ccall "sorg2r_"
+   org2r :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorgbr.f>
+foreign import ccall "sorgbr_"
+   orgbr :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorghr.f>
+foreign import ccall "sorghr_"
+   orghr :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorgl2.f>
+foreign import ccall "sorgl2_"
+   orgl2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorglq.f>
+foreign import ccall "sorglq_"
+   orglq :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorgql.f>
+foreign import ccall "sorgql_"
+   orgql :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorgqr.f>
+foreign import ccall "sorgqr_"
+   orgqr :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorgr2.f>
+foreign import ccall "sorgr2_"
+   orgr2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorgrq.f>
+foreign import ccall "sorgrq_"
+   orgrq :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorgtr.f>
+foreign import ccall "sorgtr_"
+   orgtr :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorm2l.f>
+foreign import ccall "sorm2l_"
+   orm2l :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorm2r.f>
+foreign import ccall "sorm2r_"
+   orm2r :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sormbr.f>
+foreign import ccall "sormbr_"
+   ormbr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sormhr.f>
+foreign import ccall "sormhr_"
+   ormhr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sorml2.f>
+foreign import ccall "sorml2_"
+   orml2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sormlq.f>
+foreign import ccall "sormlq_"
+   ormlq :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sormql.f>
+foreign import ccall "sormql_"
+   ormql :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sormqr.f>
+foreign import ccall "sormqr_"
+   ormqr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sormr2.f>
+foreign import ccall "sormr2_"
+   ormr2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sormr3.f>
+foreign import ccall "sormr3_"
+   ormr3 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sormrq.f>
+foreign import ccall "sormrq_"
+   ormrq :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sormrz.f>
+foreign import ccall "sormrz_"
+   ormrz :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sormtr.f>
+foreign import ccall "sormtr_"
+   ormtr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spbcon.f>
+foreign import ccall "spbcon_"
+   pbcon :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spbequ.f>
+foreign import ccall "spbequ_"
+   pbequ :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spbrfs.f>
+foreign import ccall "spbrfs_"
+   pbrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spbstf.f>
+foreign import ccall "spbstf_"
+   pbstf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spbsv.f>
+foreign import ccall "spbsv_"
+   pbsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spbsvx.f>
+foreign import ccall "spbsvx_"
+   pbsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CChar -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spbtf2.f>
+foreign import ccall "spbtf2_"
+   pbtf2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spbtrf.f>
+foreign import ccall "spbtrf_"
+   pbtrf :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spbtrs.f>
+foreign import ccall "spbtrs_"
+   pbtrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spftrf.f>
+foreign import ccall "spftrf_"
+   pftrf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spftri.f>
+foreign import ccall "spftri_"
+   pftri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spftrs.f>
+foreign import ccall "spftrs_"
+   pftrs :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spocon.f>
+foreign import ccall "spocon_"
+   pocon :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spoequ.f>
+foreign import ccall "spoequ_"
+   poequ :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spoequb.f>
+foreign import ccall "spoequb_"
+   poequb :: Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sporfs.f>
+foreign import ccall "sporfs_"
+   porfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sposv.f>
+foreign import ccall "sposv_"
+   posv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sposvx.f>
+foreign import ccall "sposvx_"
+   posvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CChar -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spotf2.f>
+foreign import ccall "spotf2_"
+   potf2 :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spotrf.f>
+foreign import ccall "spotrf_"
+   potrf :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spotri.f>
+foreign import ccall "spotri_"
+   potri :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spotrs.f>
+foreign import ccall "spotrs_"
+   potrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sppcon.f>
+foreign import ccall "sppcon_"
+   ppcon :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sppequ.f>
+foreign import ccall "sppequ_"
+   ppequ :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spprfs.f>
+foreign import ccall "spprfs_"
+   pprfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sppsv.f>
+foreign import ccall "sppsv_"
+   ppsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sppsvx.f>
+foreign import ccall "sppsvx_"
+   ppsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CChar -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spptrf.f>
+foreign import ccall "spptrf_"
+   pptrf :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spptri.f>
+foreign import ccall "spptri_"
+   pptri :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spptrs.f>
+foreign import ccall "spptrs_"
+   pptrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spstf2.f>
+foreign import ccall "spstf2_"
+   pstf2 :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spstrf.f>
+foreign import ccall "spstrf_"
+   pstrf :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sptcon.f>
+foreign import ccall "sptcon_"
+   ptcon :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spteqr.f>
+foreign import ccall "spteqr_"
+   pteqr :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sptrfs.f>
+foreign import ccall "sptrfs_"
+   ptrfs :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sptsv.f>
+foreign import ccall "sptsv_"
+   ptsv :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sptsvx.f>
+foreign import ccall "sptsvx_"
+   ptsvx :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spttrf.f>
+foreign import ccall "spttrf_"
+   pttrf :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/spttrs.f>
+foreign import ccall "spttrs_"
+   pttrs :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sptts2.f>
+foreign import ccall "sptts2_"
+   ptts2 :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/srscl.f>
+foreign import ccall "srscl_"
+   rscl :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssbev.f>
+foreign import ccall "ssbev_"
+   sbev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssbevd.f>
+foreign import ccall "ssbevd_"
+   sbevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssbevx.f>
+foreign import ccall "ssbevx_"
+   sbevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssbgst.f>
+foreign import ccall "ssbgst_"
+   sbgst :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssbgv.f>
+foreign import ccall "ssbgv_"
+   sbgv :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssbgvd.f>
+foreign import ccall "ssbgvd_"
+   sbgvd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssbgvx.f>
+foreign import ccall "ssbgvx_"
+   sbgvx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssbtrd.f>
+foreign import ccall "ssbtrd_"
+   sbtrd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssfrk.f>
+foreign import ccall "ssfrk_"
+   sfrk :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sspcon.f>
+foreign import ccall "sspcon_"
+   spcon :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sspev.f>
+foreign import ccall "sspev_"
+   spev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sspevd.f>
+foreign import ccall "sspevd_"
+   spevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sspevx.f>
+foreign import ccall "sspevx_"
+   spevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sspgst.f>
+foreign import ccall "sspgst_"
+   spgst :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sspgv.f>
+foreign import ccall "sspgv_"
+   spgv :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sspgvd.f>
+foreign import ccall "sspgvd_"
+   spgvd :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sspgvx.f>
+foreign import ccall "sspgvx_"
+   spgvx :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssprfs.f>
+foreign import ccall "ssprfs_"
+   sprfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sspsv.f>
+foreign import ccall "sspsv_"
+   spsv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sspsvx.f>
+foreign import ccall "sspsvx_"
+   spsvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssptrd.f>
+foreign import ccall "ssptrd_"
+   sptrd :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssptrf.f>
+foreign import ccall "ssptrf_"
+   sptrf :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssptri.f>
+foreign import ccall "ssptri_"
+   sptri :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssptrs.f>
+foreign import ccall "ssptrs_"
+   sptrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sstebz.f>
+foreign import ccall "sstebz_"
+   stebz :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sstedc.f>
+foreign import ccall "sstedc_"
+   stedc :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sstegr.f>
+foreign import ccall "sstegr_"
+   stegr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sstein.f>
+foreign import ccall "sstein_"
+   stein :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sstemr.f>
+foreign import ccall "sstemr_"
+   stemr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssteqr.f>
+foreign import ccall "ssteqr_"
+   steqr :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssterf.f>
+foreign import ccall "ssterf_"
+   sterf :: Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sstev.f>
+foreign import ccall "sstev_"
+   stev :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sstevd.f>
+foreign import ccall "sstevd_"
+   stevd :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sstevr.f>
+foreign import ccall "sstevr_"
+   stevr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sstevx.f>
+foreign import ccall "sstevx_"
+   stevx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssycon.f>
+foreign import ccall "ssycon_"
+   sycon :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssyconv.f>
+foreign import ccall "ssyconv_"
+   syconv :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssyequb.f>
+foreign import ccall "ssyequb_"
+   syequb :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssyev.f>
+foreign import ccall "ssyev_"
+   syev :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssyevd.f>
+foreign import ccall "ssyevd_"
+   syevd :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssyevr.f>
+foreign import ccall "ssyevr_"
+   syevr :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssyevx.f>
+foreign import ccall "ssyevx_"
+   syevx :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssygs2.f>
+foreign import ccall "ssygs2_"
+   sygs2 :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssygst.f>
+foreign import ccall "ssygst_"
+   sygst :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssygv.f>
+foreign import ccall "ssygv_"
+   sygv :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssygvd.f>
+foreign import ccall "ssygvd_"
+   sygvd :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssygvx.f>
+foreign import ccall "ssygvx_"
+   sygvx :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssyrfs.f>
+foreign import ccall "ssyrfs_"
+   syrfs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssysv.f>
+foreign import ccall "ssysv_"
+   sysv :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssysvx.f>
+foreign import ccall "ssysvx_"
+   sysvx :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssyswapr.f>
+foreign import ccall "ssyswapr_"
+   syswapr :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssytd2.f>
+foreign import ccall "ssytd2_"
+   sytd2 :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssytf2.f>
+foreign import ccall "ssytf2_"
+   sytf2 :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssytrd.f>
+foreign import ccall "ssytrd_"
+   sytrd :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssytrf.f>
+foreign import ccall "ssytrf_"
+   sytrf :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssytri.f>
+foreign import ccall "ssytri_"
+   sytri :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssytri2.f>
+foreign import ccall "ssytri2_"
+   sytri2 :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssytri2x.f>
+foreign import ccall "ssytri2x_"
+   sytri2x :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssytrs.f>
+foreign import ccall "ssytrs_"
+   sytrs :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ssytrs2.f>
+foreign import ccall "ssytrs2_"
+   sytrs2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stbcon.f>
+foreign import ccall "stbcon_"
+   tbcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stbrfs.f>
+foreign import ccall "stbrfs_"
+   tbrfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stbtrs.f>
+foreign import ccall "stbtrs_"
+   tbtrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stfsm.f>
+foreign import ccall "stfsm_"
+   tfsm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stftri.f>
+foreign import ccall "stftri_"
+   tftri :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stfttp.f>
+foreign import ccall "stfttp_"
+   tfttp :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stfttr.f>
+foreign import ccall "stfttr_"
+   tfttr :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stgevc.f>
+foreign import ccall "stgevc_"
+   tgevc :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stgex2.f>
+foreign import ccall "stgex2_"
+   tgex2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stgexc.f>
+foreign import ccall "stgexc_"
+   tgexc :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stgsen.f>
+foreign import ccall "stgsen_"
+   tgsen :: Ptr CInt -> Ptr Bool -> Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stgsja.f>
+foreign import ccall "stgsja_"
+   tgsja :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stgsna.f>
+foreign import ccall "stgsna_"
+   tgsna :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stgsy2.f>
+foreign import ccall "stgsy2_"
+   tgsy2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stgsyl.f>
+foreign import ccall "stgsyl_"
+   tgsyl :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stpcon.f>
+foreign import ccall "stpcon_"
+   tpcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stprfs.f>
+foreign import ccall "stprfs_"
+   tprfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stptri.f>
+foreign import ccall "stptri_"
+   tptri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stptrs.f>
+foreign import ccall "stptrs_"
+   tptrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stpttf.f>
+foreign import ccall "stpttf_"
+   tpttf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stpttr.f>
+foreign import ccall "stpttr_"
+   tpttr :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strcon.f>
+foreign import ccall "strcon_"
+   trcon :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strevc.f>
+foreign import ccall "strevc_"
+   trevc :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strexc.f>
+foreign import ccall "strexc_"
+   trexc :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strrfs.f>
+foreign import ccall "strrfs_"
+   trrfs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strsen.f>
+foreign import ccall "strsen_"
+   trsen :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strsna.f>
+foreign import ccall "strsna_"
+   trsna :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strsyl.f>
+foreign import ccall "strsyl_"
+   trsyl :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strti2.f>
+foreign import ccall "strti2_"
+   trti2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strtri.f>
+foreign import ccall "strtri_"
+   trtri :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strtrs.f>
+foreign import ccall "strtrs_"
+   trtrs :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strttf.f>
+foreign import ccall "strttf_"
+   trttf :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/strttp.f>
+foreign import ccall "strttp_"
+   trttp :: Ptr CChar -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr CInt -> IO ()
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/stzrzf.f>
+foreign import ccall "stzrzf_"
+   tzrzf :: Ptr CInt -> Ptr CInt -> Ptr Float -> Ptr CInt -> Ptr Float -> Ptr Float -> Ptr CInt -> Ptr CInt -> IO ()
diff --git a/src/Numeric/LAPACK/FFI/Generic.hs b/src/Numeric/LAPACK/FFI/Generic.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/LAPACK/FFI/Generic.hs
@@ -0,0 +1,714 @@
+-- Do not edit! Automatically generated by create-lapack-ffi.
+module Numeric.LAPACK.FFI.Generic (
+   gbsv,
+   gbtf2,
+   gbtrf,
+   gbtrs,
+   gehd2,
+   gehrd,
+   gelq2,
+   gelqf,
+   gels,
+   geql2,
+   geqlf,
+   geqr2,
+   geqr2p,
+   geqrf,
+   geqrfp,
+   gerq2,
+   gerqf,
+   gesv,
+   getc2,
+   getf2,
+   getrf,
+   getri,
+   getrs,
+   ggglm,
+   gghrd,
+   gglse,
+   ggqrf,
+   ggrqf,
+   gtsv,
+   gttrf,
+   gttrs,
+   gtts2,
+   ilalc,
+   ilalr,
+   lacpy,
+   lahr2,
+   lapmr,
+   lapmt,
+   larf,
+   larfb,
+   larfg,
+   larfgp,
+   larft,
+   larfx,
+   larnv,
+   larz,
+   larzb,
+   larzt,
+   laset,
+   laswp,
+   lasyf,
+   latrz,
+   lauu2,
+   lauum,
+   pbstf,
+   pbsv,
+   pbtf2,
+   pbtrf,
+   pbtrs,
+   pftrf,
+   pftri,
+   pftrs,
+   posv,
+   potf2,
+   potrf,
+   potri,
+   potrs,
+   ppsv,
+   pptrf,
+   pptri,
+   pptrs,
+   spsv,
+   sptrf,
+   sptri,
+   sptrs,
+   syconv,
+   sysv,
+   syswapr,
+   sytf2,
+   sytrf,
+   sytri,
+   sytri2,
+   sytri2x,
+   sytrs,
+   sytrs2,
+   tbtrs,
+   tfsm,
+   tftri,
+   tfttp,
+   tfttr,
+   tptri,
+   tptrs,
+   tpttf,
+   tpttr,
+   trti2,
+   trtri,
+   trtrs,
+   trttf,
+   trttp,
+   tzrzf,
+   ) where
+
+import qualified Numeric.LAPACK.FFI.ComplexFloat as C
+import qualified Numeric.LAPACK.FFI.ComplexDouble as Z
+import qualified Numeric.LAPACK.FFI.Float as S
+import qualified Numeric.LAPACK.FFI.Double as D
+
+import qualified Numeric.Netlib.Class as Class
+
+import Foreign.Ptr (Ptr)
+import Foreign.C.Types
+
+
+
+newtype GBSV a = GBSV {getGBSV :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbsv :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gbsv = getGBSV $ Class.switchFloating (GBSV S.gbsv) (GBSV D.gbsv) (GBSV C.gbsv) (GBSV Z.gbsv)
+
+
+newtype GBTF2 a = GBTF2 {getGBTF2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbtf2 :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+gbtf2 = getGBTF2 $ Class.switchFloating (GBTF2 S.gbtf2) (GBTF2 D.gbtf2) (GBTF2 C.gbtf2) (GBTF2 Z.gbtf2)
+
+
+newtype GBTRF a = GBTRF {getGBTRF :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbtrf :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+gbtrf = getGBTRF $ Class.switchFloating (GBTRF S.gbtrf) (GBTRF D.gbtrf) (GBTRF C.gbtrf) (GBTRF Z.gbtrf)
+
+
+newtype GBTRS a = GBTRS {getGBTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbtrs :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gbtrs = getGBTRS $ Class.switchFloating (GBTRS S.gbtrs) (GBTRS D.gbtrs) (GBTRS C.gbtrs) (GBTRS Z.gbtrs)
+
+
+newtype GEHD2 a = GEHD2 {getGEHD2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+gehd2 :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+gehd2 = getGEHD2 $ Class.switchFloating (GEHD2 S.gehd2) (GEHD2 D.gehd2) (GEHD2 C.gehd2) (GEHD2 Z.gehd2)
+
+
+newtype GEHRD a = GEHRD {getGEHRD :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gehrd :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gehrd = getGEHRD $ Class.switchFloating (GEHRD S.gehrd) (GEHRD D.gehrd) (GEHRD C.gehrd) (GEHRD Z.gehrd)
+
+
+newtype GELQ2 a = GELQ2 {getGELQ2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+gelq2 :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+gelq2 = getGELQ2 $ Class.switchFloating (GELQ2 S.gelq2) (GELQ2 D.gelq2) (GELQ2 C.gelq2) (GELQ2 Z.gelq2)
+
+
+newtype GELQF a = GELQF {getGELQF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gelqf :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gelqf = getGELQF $ Class.switchFloating (GELQF S.gelqf) (GELQF D.gelqf) (GELQF C.gelqf) (GELQF Z.gelqf)
+
+
+newtype GELS a = GELS {getGELS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gels :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gels = getGELS $ Class.switchFloating (GELS S.gels) (GELS D.gels) (GELS C.gels) (GELS Z.gels)
+
+
+newtype GEQL2 a = GEQL2 {getGEQL2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+geql2 :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+geql2 = getGEQL2 $ Class.switchFloating (GEQL2 S.geql2) (GEQL2 D.geql2) (GEQL2 C.geql2) (GEQL2 Z.geql2)
+
+
+newtype GEQLF a = GEQLF {getGEQLF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geqlf :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+geqlf = getGEQLF $ Class.switchFloating (GEQLF S.geqlf) (GEQLF D.geqlf) (GEQLF C.geqlf) (GEQLF Z.geqlf)
+
+
+newtype GEQR2 a = GEQR2 {getGEQR2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+geqr2 :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+geqr2 = getGEQR2 $ Class.switchFloating (GEQR2 S.geqr2) (GEQR2 D.geqr2) (GEQR2 C.geqr2) (GEQR2 Z.geqr2)
+
+
+newtype GEQR2P a = GEQR2P {getGEQR2P :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+geqr2p :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+geqr2p = getGEQR2P $ Class.switchFloating (GEQR2P S.geqr2p) (GEQR2P D.geqr2p) (GEQR2P C.geqr2p) (GEQR2P Z.geqr2p)
+
+
+newtype GEQRF a = GEQRF {getGEQRF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geqrf :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+geqrf = getGEQRF $ Class.switchFloating (GEQRF S.geqrf) (GEQRF D.geqrf) (GEQRF C.geqrf) (GEQRF Z.geqrf)
+
+
+newtype GEQRFP a = GEQRFP {getGEQRFP :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geqrfp :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+geqrfp = getGEQRFP $ Class.switchFloating (GEQRFP S.geqrfp) (GEQRFP D.geqrfp) (GEQRFP C.geqrfp) (GEQRFP Z.geqrfp)
+
+
+newtype GERQ2 a = GERQ2 {getGERQ2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+gerq2 :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+gerq2 = getGERQ2 $ Class.switchFloating (GERQ2 S.gerq2) (GERQ2 D.gerq2) (GERQ2 C.gerq2) (GERQ2 Z.gerq2)
+
+
+newtype GERQF a = GERQF {getGERQF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gerqf :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gerqf = getGERQF $ Class.switchFloating (GERQF S.gerqf) (GERQF D.gerqf) (GERQF C.gerqf) (GERQF Z.gerqf)
+
+
+newtype GESV a = GESV {getGESV :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gesv :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gesv = getGESV $ Class.switchFloating (GESV S.gesv) (GESV D.gesv) (GESV C.gesv) (GESV Z.gesv)
+
+
+newtype GETC2 a = GETC2 {getGETC2 :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getc2 :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+getc2 = getGETC2 $ Class.switchFloating (GETC2 S.getc2) (GETC2 D.getc2) (GETC2 C.getc2) (GETC2 Z.getc2)
+
+
+newtype GETF2 a = GETF2 {getGETF2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getf2 :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+getf2 = getGETF2 $ Class.switchFloating (GETF2 S.getf2) (GETF2 D.getf2) (GETF2 C.getf2) (GETF2 Z.getf2)
+
+
+newtype GETRF a = GETRF {getGETRF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getrf :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+getrf = getGETRF $ Class.switchFloating (GETRF S.getrf) (GETRF D.getrf) (GETRF C.getrf) (GETRF Z.getrf)
+
+
+newtype GETRI a = GETRI {getGETRI :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getri :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+getri = getGETRI $ Class.switchFloating (GETRI S.getri) (GETRI D.getri) (GETRI C.getri) (GETRI Z.getri)
+
+
+newtype GETRS a = GETRS {getGETRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getrs :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+getrs = getGETRS $ Class.switchFloating (GETRS S.getrs) (GETRS D.getrs) (GETRS C.getrs) (GETRS Z.getrs)
+
+
+newtype GGGLM a = GGGLM {getGGGLM :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggglm :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ggglm = getGGGLM $ Class.switchFloating (GGGLM S.ggglm) (GGGLM D.ggglm) (GGGLM C.ggglm) (GGGLM Z.ggglm)
+
+
+newtype GGHRD a = GGHRD {getGGHRD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gghrd :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gghrd = getGGHRD $ Class.switchFloating (GGHRD S.gghrd) (GGHRD D.gghrd) (GGHRD C.gghrd) (GGHRD Z.gghrd)
+
+
+newtype GGLSE a = GGLSE {getGGLSE :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gglse :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gglse = getGGLSE $ Class.switchFloating (GGLSE S.gglse) (GGLSE D.gglse) (GGLSE C.gglse) (GGLSE Z.gglse)
+
+
+newtype GGQRF a = GGQRF {getGGQRF :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggqrf :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ggqrf = getGGQRF $ Class.switchFloating (GGQRF S.ggqrf) (GGQRF D.ggqrf) (GGQRF C.ggqrf) (GGQRF Z.ggqrf)
+
+
+newtype GGRQF a = GGRQF {getGGRQF :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggrqf :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ggrqf = getGGRQF $ Class.switchFloating (GGRQF S.ggrqf) (GGRQF D.ggrqf) (GGRQF C.ggrqf) (GGRQF Z.ggrqf)
+
+
+newtype GTSV a = GTSV {getGTSV :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gtsv :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gtsv = getGTSV $ Class.switchFloating (GTSV S.gtsv) (GTSV D.gtsv) (GTSV C.gtsv) (GTSV Z.gtsv)
+
+
+newtype GTTRF a = GTTRF {getGTTRF :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gttrf :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gttrf = getGTTRF $ Class.switchFloating (GTTRF S.gttrf) (GTTRF D.gttrf) (GTTRF C.gttrf) (GTTRF Z.gttrf)
+
+
+newtype GTTRS a = GTTRS {getGTTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gttrs :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gttrs = getGTTRS $ Class.switchFloating (GTTRS S.gttrs) (GTTRS D.gttrs) (GTTRS C.gttrs) (GTTRS Z.gttrs)
+
+
+newtype GTTS2 a = GTTS2 {getGTTS2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+gtts2 :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+gtts2 = getGTTS2 $ Class.switchFloating (GTTS2 S.gtts2) (GTTS2 D.gtts2) (GTTS2 C.gtts2) (GTTS2 Z.gtts2)
+
+
+newtype ILALC a = ILALC {getILALC :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt}
+
+ilalc :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt
+ilalc = getILALC $ Class.switchFloating (ILALC S.ilalc) (ILALC D.ilalc) (ILALC C.ilalc) (ILALC Z.ilalc)
+
+
+newtype ILALR a = ILALR {getILALR :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt}
+
+ilalr :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt
+ilalr = getILALR $ Class.switchFloating (ILALR S.ilalr) (ILALR D.ilalr) (ILALR C.ilalr) (ILALR Z.ilalr)
+
+
+newtype LACPY a = LACPY {getLACPY :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lacpy :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lacpy = getLACPY $ Class.switchFloating (LACPY S.lacpy) (LACPY D.lacpy) (LACPY C.lacpy) (LACPY Z.lacpy)
+
+
+newtype LAHR2 a = LAHR2 {getLAHR2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lahr2 :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lahr2 = getLAHR2 $ Class.switchFloating (LAHR2 S.lahr2) (LAHR2 D.lahr2) (LAHR2 C.lahr2) (LAHR2 Z.lahr2)
+
+
+newtype LAPMR a = LAPMR {getLAPMR :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lapmr :: Class.Floating a => Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lapmr = getLAPMR $ Class.switchFloating (LAPMR S.lapmr) (LAPMR D.lapmr) (LAPMR C.lapmr) (LAPMR Z.lapmr)
+
+
+newtype LAPMT a = LAPMT {getLAPMT :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lapmt :: Class.Floating a => Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lapmt = getLAPMT $ Class.switchFloating (LAPMT S.lapmt) (LAPMT D.lapmt) (LAPMT C.lapmt) (LAPMT Z.lapmt)
+
+
+newtype LARF a = LARF {getLARF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+larf :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+larf = getLARF $ Class.switchFloating (LARF S.larf) (LARF D.larf) (LARF C.larf) (LARF Z.larf)
+
+
+newtype LARFB a = LARFB {getLARFB :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+larfb :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+larfb = getLARFB $ Class.switchFloating (LARFB S.larfb) (LARFB D.larfb) (LARFB C.larfb) (LARFB Z.larfb)
+
+
+newtype LARFG a = LARFG {getLARFG :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+larfg :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+larfg = getLARFG $ Class.switchFloating (LARFG S.larfg) (LARFG D.larfg) (LARFG C.larfg) (LARFG Z.larfg)
+
+
+newtype LARFGP a = LARFGP {getLARFGP :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+larfgp :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+larfgp = getLARFGP $ Class.switchFloating (LARFGP S.larfgp) (LARFGP D.larfgp) (LARFGP C.larfgp) (LARFGP Z.larfgp)
+
+
+newtype LARFT a = LARFT {getLARFT :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+larft :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+larft = getLARFT $ Class.switchFloating (LARFT S.larft) (LARFT D.larft) (LARFT C.larft) (LARFT Z.larft)
+
+
+newtype LARFX a = LARFX {getLARFX :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+larfx :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+larfx = getLARFX $ Class.switchFloating (LARFX S.larfx) (LARFX D.larfx) (LARFX C.larfx) (LARFX Z.larfx)
+
+
+newtype LARNV a = LARNV {getLARNV :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> IO ()}
+
+larnv :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> IO ()
+larnv = getLARNV $ Class.switchFloating (LARNV S.larnv) (LARNV D.larnv) (LARNV C.larnv) (LARNV Z.larnv)
+
+
+newtype LARZ a = LARZ {getLARZ :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+larz :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+larz = getLARZ $ Class.switchFloating (LARZ S.larz) (LARZ D.larz) (LARZ C.larz) (LARZ Z.larz)
+
+
+newtype LARZB a = LARZB {getLARZB :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+larzb :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+larzb = getLARZB $ Class.switchFloating (LARZB S.larzb) (LARZB D.larzb) (LARZB C.larzb) (LARZB Z.larzb)
+
+
+newtype LARZT a = LARZT {getLARZT :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+larzt :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+larzt = getLARZT $ Class.switchFloating (LARZT S.larzt) (LARZT D.larzt) (LARZT C.larzt) (LARZT Z.larzt)
+
+
+newtype LASET a = LASET {getLASET :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+laset :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+laset = getLASET $ Class.switchFloating (LASET S.laset) (LASET D.laset) (LASET C.laset) (LASET Z.laset)
+
+
+newtype LASWP a = LASWP {getLASWP :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laswp :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+laswp = getLASWP $ Class.switchFloating (LASWP S.laswp) (LASWP D.laswp) (LASWP C.laswp) (LASWP Z.laswp)
+
+
+newtype LASYF a = LASYF {getLASYF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lasyf :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lasyf = getLASYF $ Class.switchFloating (LASYF S.lasyf) (LASYF D.lasyf) (LASYF C.lasyf) (LASYF Z.lasyf)
+
+
+newtype LATRZ a = LATRZ {getLATRZ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> IO ()}
+
+latrz :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> IO ()
+latrz = getLATRZ $ Class.switchFloating (LATRZ S.latrz) (LATRZ D.latrz) (LATRZ C.latrz) (LATRZ Z.latrz)
+
+
+newtype LAUU2 a = LAUU2 {getLAUU2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lauu2 :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lauu2 = getLAUU2 $ Class.switchFloating (LAUU2 S.lauu2) (LAUU2 D.lauu2) (LAUU2 C.lauu2) (LAUU2 Z.lauu2)
+
+
+newtype LAUUM a = LAUUM {getLAUUM :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lauum :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lauum = getLAUUM $ Class.switchFloating (LAUUM S.lauum) (LAUUM D.lauum) (LAUUM C.lauum) (LAUUM Z.lauum)
+
+
+newtype PBSTF a = PBSTF {getPBSTF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbstf :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbstf = getPBSTF $ Class.switchFloating (PBSTF S.pbstf) (PBSTF D.pbstf) (PBSTF C.pbstf) (PBSTF Z.pbstf)
+
+
+newtype PBSV a = PBSV {getPBSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbsv :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbsv = getPBSV $ Class.switchFloating (PBSV S.pbsv) (PBSV D.pbsv) (PBSV C.pbsv) (PBSV Z.pbsv)
+
+
+newtype PBTF2 a = PBTF2 {getPBTF2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbtf2 :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbtf2 = getPBTF2 $ Class.switchFloating (PBTF2 S.pbtf2) (PBTF2 D.pbtf2) (PBTF2 C.pbtf2) (PBTF2 Z.pbtf2)
+
+
+newtype PBTRF a = PBTRF {getPBTRF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbtrf :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbtrf = getPBTRF $ Class.switchFloating (PBTRF S.pbtrf) (PBTRF D.pbtrf) (PBTRF C.pbtrf) (PBTRF Z.pbtrf)
+
+
+newtype PBTRS a = PBTRS {getPBTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbtrs :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbtrs = getPBTRS $ Class.switchFloating (PBTRS S.pbtrs) (PBTRS D.pbtrs) (PBTRS C.pbtrs) (PBTRS Z.pbtrs)
+
+
+newtype PFTRF a = PFTRF {getPFTRF :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+pftrf :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+pftrf = getPFTRF $ Class.switchFloating (PFTRF S.pftrf) (PFTRF D.pftrf) (PFTRF C.pftrf) (PFTRF Z.pftrf)
+
+
+newtype PFTRI a = PFTRI {getPFTRI :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+pftri :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+pftri = getPFTRI $ Class.switchFloating (PFTRI S.pftri) (PFTRI D.pftri) (PFTRI C.pftri) (PFTRI Z.pftri)
+
+
+newtype PFTRS a = PFTRS {getPFTRS :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pftrs :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pftrs = getPFTRS $ Class.switchFloating (PFTRS S.pftrs) (PFTRS D.pftrs) (PFTRS C.pftrs) (PFTRS Z.pftrs)
+
+
+newtype POSV a = POSV {getPOSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+posv :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+posv = getPOSV $ Class.switchFloating (POSV S.posv) (POSV D.posv) (POSV C.posv) (POSV Z.posv)
+
+
+newtype POTF2 a = POTF2 {getPOTF2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potf2 :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+potf2 = getPOTF2 $ Class.switchFloating (POTF2 S.potf2) (POTF2 D.potf2) (POTF2 C.potf2) (POTF2 Z.potf2)
+
+
+newtype POTRF a = POTRF {getPOTRF :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potrf :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+potrf = getPOTRF $ Class.switchFloating (POTRF S.potrf) (POTRF D.potrf) (POTRF C.potrf) (POTRF Z.potrf)
+
+
+newtype POTRI a = POTRI {getPOTRI :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potri :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+potri = getPOTRI $ Class.switchFloating (POTRI S.potri) (POTRI D.potri) (POTRI C.potri) (POTRI Z.potri)
+
+
+newtype POTRS a = POTRS {getPOTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potrs :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+potrs = getPOTRS $ Class.switchFloating (POTRS S.potrs) (POTRS D.potrs) (POTRS C.potrs) (POTRS Z.potrs)
+
+
+newtype PPSV a = PPSV {getPPSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ppsv :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ppsv = getPPSV $ Class.switchFloating (PPSV S.ppsv) (PPSV D.ppsv) (PPSV C.ppsv) (PPSV Z.ppsv)
+
+
+newtype PPTRF a = PPTRF {getPPTRF :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+pptrf :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+pptrf = getPPTRF $ Class.switchFloating (PPTRF S.pptrf) (PPTRF D.pptrf) (PPTRF C.pptrf) (PPTRF Z.pptrf)
+
+
+newtype PPTRI a = PPTRI {getPPTRI :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+pptri :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+pptri = getPPTRI $ Class.switchFloating (PPTRI S.pptri) (PPTRI D.pptri) (PPTRI C.pptri) (PPTRI Z.pptri)
+
+
+newtype PPTRS a = PPTRS {getPPTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pptrs :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pptrs = getPPTRS $ Class.switchFloating (PPTRS S.pptrs) (PPTRS D.pptrs) (PPTRS C.pptrs) (PPTRS Z.pptrs)
+
+
+newtype SPSV a = SPSV {getSPSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+spsv :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+spsv = getSPSV $ Class.switchFloating (SPSV S.spsv) (SPSV D.spsv) (SPSV C.spsv) (SPSV Z.spsv)
+
+
+newtype SPTRF a = SPTRF {getSPTRF :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sptrf :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sptrf = getSPTRF $ Class.switchFloating (SPTRF S.sptrf) (SPTRF D.sptrf) (SPTRF C.sptrf) (SPTRF Z.sptrf)
+
+
+newtype SPTRI a = SPTRI {getSPTRI :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+sptri :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+sptri = getSPTRI $ Class.switchFloating (SPTRI S.sptri) (SPTRI D.sptri) (SPTRI C.sptri) (SPTRI Z.sptri)
+
+
+newtype SPTRS a = SPTRS {getSPTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sptrs :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sptrs = getSPTRS $ Class.switchFloating (SPTRS S.sptrs) (SPTRS D.sptrs) (SPTRS C.sptrs) (SPTRS Z.sptrs)
+
+
+newtype SYCONV a = SYCONV {getSYCONV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+syconv :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+syconv = getSYCONV $ Class.switchFloating (SYCONV S.syconv) (SYCONV D.syconv) (SYCONV C.syconv) (SYCONV Z.syconv)
+
+
+newtype SYSV a = SYSV {getSYSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sysv :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sysv = getSYSV $ Class.switchFloating (SYSV S.sysv) (SYSV D.sysv) (SYSV C.sysv) (SYSV Z.sysv)
+
+
+newtype SYSWAPR a = SYSWAPR {getSYSWAPR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+syswapr :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+syswapr = getSYSWAPR $ Class.switchFloating (SYSWAPR S.syswapr) (SYSWAPR D.syswapr) (SYSWAPR C.syswapr) (SYSWAPR Z.syswapr)
+
+
+newtype SYTF2 a = SYTF2 {getSYTF2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytf2 :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+sytf2 = getSYTF2 $ Class.switchFloating (SYTF2 S.sytf2) (SYTF2 D.sytf2) (SYTF2 C.sytf2) (SYTF2 Z.sytf2)
+
+
+newtype SYTRF a = SYTRF {getSYTRF :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytrf :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sytrf = getSYTRF $ Class.switchFloating (SYTRF S.sytrf) (SYTRF D.sytrf) (SYTRF C.sytrf) (SYTRF Z.sytrf)
+
+
+newtype SYTRI a = SYTRI {getSYTRI :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+sytri :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+sytri = getSYTRI $ Class.switchFloating (SYTRI S.sytri) (SYTRI D.sytri) (SYTRI C.sytri) (SYTRI Z.sytri)
+
+
+newtype SYTRI2 a = SYTRI2 {getSYTRI2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytri2 :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sytri2 = getSYTRI2 $ Class.switchFloating (SYTRI2 S.sytri2) (SYTRI2 D.sytri2) (SYTRI2 C.sytri2) (SYTRI2 Z.sytri2)
+
+
+newtype SYTRI2X a = SYTRI2X {getSYTRI2X :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytri2x :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sytri2x = getSYTRI2X $ Class.switchFloating (SYTRI2X S.sytri2x) (SYTRI2X D.sytri2x) (SYTRI2X C.sytri2x) (SYTRI2X Z.sytri2x)
+
+
+newtype SYTRS a = SYTRS {getSYTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytrs :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sytrs = getSYTRS $ Class.switchFloating (SYTRS S.sytrs) (SYTRS D.sytrs) (SYTRS C.sytrs) (SYTRS Z.sytrs)
+
+
+newtype SYTRS2 a = SYTRS2 {getSYTRS2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+sytrs2 :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+sytrs2 = getSYTRS2 $ Class.switchFloating (SYTRS2 S.sytrs2) (SYTRS2 D.sytrs2) (SYTRS2 C.sytrs2) (SYTRS2 Z.sytrs2)
+
+
+newtype TBTRS a = TBTRS {getTBTRS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tbtrs :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tbtrs = getTBTRS $ Class.switchFloating (TBTRS S.tbtrs) (TBTRS D.tbtrs) (TBTRS C.tbtrs) (TBTRS Z.tbtrs)
+
+
+newtype TFSM a = TFSM {getTFSM :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+tfsm :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+tfsm = getTFSM $ Class.switchFloating (TFSM S.tfsm) (TFSM D.tfsm) (TFSM C.tfsm) (TFSM Z.tfsm)
+
+
+newtype TFTRI a = TFTRI {getTFTRI :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+tftri :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+tftri = getTFTRI $ Class.switchFloating (TFTRI S.tftri) (TFTRI D.tftri) (TFTRI C.tftri) (TFTRI Z.tftri)
+
+
+newtype TFTTP a = TFTTP {getTFTTP :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+tfttp :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+tfttp = getTFTTP $ Class.switchFloating (TFTTP S.tfttp) (TFTTP D.tfttp) (TFTTP C.tfttp) (TFTTP Z.tfttp)
+
+
+newtype TFTTR a = TFTTR {getTFTTR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tfttr :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tfttr = getTFTTR $ Class.switchFloating (TFTTR S.tfttr) (TFTTR D.tfttr) (TFTTR C.tfttr) (TFTTR Z.tfttr)
+
+
+newtype TPTRI a = TPTRI {getTPTRI :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+tptri :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+tptri = getTPTRI $ Class.switchFloating (TPTRI S.tptri) (TPTRI D.tptri) (TPTRI C.tptri) (TPTRI Z.tptri)
+
+
+newtype TPTRS a = TPTRS {getTPTRS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tptrs :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tptrs = getTPTRS $ Class.switchFloating (TPTRS S.tptrs) (TPTRS D.tptrs) (TPTRS C.tptrs) (TPTRS Z.tptrs)
+
+
+newtype TPTTF a = TPTTF {getTPTTF :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+tpttf :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+tpttf = getTPTTF $ Class.switchFloating (TPTTF S.tpttf) (TPTTF D.tpttf) (TPTTF C.tpttf) (TPTTF Z.tpttf)
+
+
+newtype TPTTR a = TPTTR {getTPTTR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tpttr :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tpttr = getTPTTR $ Class.switchFloating (TPTTR S.tpttr) (TPTTR D.tpttr) (TPTTR C.tpttr) (TPTTR Z.tpttr)
+
+
+newtype TRTI2 a = TRTI2 {getTRTI2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trti2 :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+trti2 = getTRTI2 $ Class.switchFloating (TRTI2 S.trti2) (TRTI2 D.trti2) (TRTI2 C.trti2) (TRTI2 Z.trti2)
+
+
+newtype TRTRI a = TRTRI {getTRTRI :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trtri :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+trtri = getTRTRI $ Class.switchFloating (TRTRI S.trtri) (TRTRI D.trtri) (TRTRI C.trtri) (TRTRI Z.trtri)
+
+
+newtype TRTRS a = TRTRS {getTRTRS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trtrs :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+trtrs = getTRTRS $ Class.switchFloating (TRTRS S.trtrs) (TRTRS D.trtrs) (TRTRS C.trtrs) (TRTRS Z.trtrs)
+
+
+newtype TRTTF a = TRTTF {getTRTTF :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+trttf :: Class.Floating a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+trttf = getTRTTF $ Class.switchFloating (TRTTF S.trttf) (TRTTF D.trttf) (TRTTF C.trttf) (TRTTF Z.trttf)
+
+
+newtype TRTTP a = TRTTP {getTRTTP :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+trttp :: Class.Floating a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+trttp = getTRTTP $ Class.switchFloating (TRTTP S.trttp) (TRTTP D.trttp) (TRTTP C.trttp) (TRTTP Z.trttp)
+
+
+newtype TZRZF a = TZRZF {getTZRZF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tzrzf :: Class.Floating a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tzrzf = getTZRZF $ Class.switchFloating (TZRZF S.tzrzf) (TZRZF D.tzrzf) (TZRZF C.tzrzf) (TZRZF Z.tzrzf)
diff --git a/src/Numeric/LAPACK/FFI/Miscellaneous.hs b/src/Numeric/LAPACK/FFI/Miscellaneous.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/LAPACK/FFI/Miscellaneous.hs
@@ -0,0 +1,31 @@
+-- Do not edit! Automatically generated by create-lapack-ffi.
+{-# LANGUAGE ForeignFunctionInterface #-}
+module Numeric.LAPACK.FFI.Miscellaneous where
+
+import Foreign.Ptr (Ptr)
+import Foreign.C.Types
+
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chla_transtype.f>
+foreign import ccall "chla_transtype_"
+   chla_transtype :: Ptr CInt -> IO CChar
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ieeeck.f>
+foreign import ccall "ieeeck_"
+   ieeeck :: Ptr CInt -> Ptr Float -> Ptr Float -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/iladiag.f>
+foreign import ccall "iladiag_"
+   ladiag :: Ptr CChar -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilaprec.f>
+foreign import ccall "ilaprec_"
+   laprec :: Ptr CChar -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilatrans.f>
+foreign import ccall "ilatrans_"
+   latrans :: Ptr CChar -> IO CInt
+
+-- | <http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilauplo.f>
+foreign import ccall "ilauplo_"
+   lauplo :: Ptr CChar -> IO CInt
diff --git a/src/Numeric/LAPACK/FFI/Real.hs b/src/Numeric/LAPACK/FFI/Real.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/LAPACK/FFI/Real.hs
@@ -0,0 +1,2644 @@
+-- Do not edit! Automatically generated by create-lapack-ffi.
+module Numeric.LAPACK.FFI.Real (
+   bbcsd,
+   bdsdc,
+   bdsqr,
+   disna,
+   gbbrd,
+   gbcon,
+   gbequ,
+   gbequb,
+   gbrfs,
+   gbsv,
+   gbsvx,
+   gbtf2,
+   gbtrf,
+   gbtrs,
+   gebak,
+   gebal,
+   gebd2,
+   gebrd,
+   gecon,
+   geequ,
+   geequb,
+   gees,
+   geesx,
+   geev,
+   geevx,
+   gehd2,
+   gehrd,
+   gejsv,
+   gelq2,
+   gelqf,
+   gels,
+   gelsd,
+   gelss,
+   gelsy,
+   geql2,
+   geqlf,
+   geqp3,
+   geqr2,
+   geqr2p,
+   geqrf,
+   geqrfp,
+   gerfs,
+   gerq2,
+   gerqf,
+   gesc2,
+   gesdd,
+   gesv,
+   gesvd,
+   gesvj,
+   gesvx,
+   getc2,
+   getf2,
+   getrf,
+   getri,
+   getrs,
+   ggbak,
+   ggbal,
+   gges,
+   ggesx,
+   ggev,
+   ggevx,
+   ggglm,
+   gghrd,
+   gglse,
+   ggqrf,
+   ggrqf,
+   gsvj0,
+   gsvj1,
+   gtcon,
+   gtrfs,
+   gtsv,
+   gtsvx,
+   gttrf,
+   gttrs,
+   gtts2,
+   hgeqz,
+   hsein,
+   hseqr,
+   ilalc,
+   ilalr,
+   isnan,
+   labad,
+   labrd,
+   lacn2,
+   lacon,
+   lacpy,
+   ladiv,
+   lae2,
+   laebz,
+   laed0,
+   laed1,
+   laed2,
+   laed3,
+   laed4,
+   laed5,
+   laed6,
+   laed7,
+   laed8,
+   laed9,
+   laeda,
+   laein,
+   laev2,
+   laexc,
+   lag2,
+   lags2,
+   lagtf,
+   lagtm,
+   lagts,
+   lagv2,
+   lahqr,
+   lahr2,
+   laic1,
+   laisnan,
+   laln2,
+   lals0,
+   lalsa,
+   lalsd,
+   lamrg,
+   laneg,
+   langb,
+   lange,
+   langt,
+   lanhs,
+   lansb,
+   lansf,
+   lansp,
+   lanst,
+   lansy,
+   lantb,
+   lantp,
+   lantr,
+   lanv2,
+   lapll,
+   lapmr,
+   lapmt,
+   lapy2,
+   lapy3,
+   laqgb,
+   laqge,
+   laqp2,
+   laqps,
+   laqr0,
+   laqr1,
+   laqr2,
+   laqr3,
+   laqr4,
+   laqr5,
+   laqsb,
+   laqsp,
+   laqsy,
+   laqtr,
+   lar1v,
+   lar2v,
+   larf,
+   larfb,
+   larfg,
+   larfgp,
+   larft,
+   larfx,
+   largv,
+   larnv,
+   larra,
+   larrb,
+   larrc,
+   larrd,
+   larre,
+   larrf,
+   larrj,
+   larrk,
+   larrr,
+   larrv,
+   lartg,
+   lartgp,
+   lartgs,
+   lartv,
+   laruv,
+   larz,
+   larzb,
+   larzt,
+   las2,
+   lascl,
+   lasd0,
+   lasd1,
+   lasd2,
+   lasd3,
+   lasd4,
+   lasd5,
+   lasd6,
+   lasd7,
+   lasd8,
+   lasda,
+   lasdq,
+   laset,
+   lasq1,
+   lasq2,
+   lasq4,
+   lasq5,
+   lasq6,
+   lasr,
+   lasrt,
+   lassq,
+   lasv2,
+   laswp,
+   lasy2,
+   lasyf,
+   latbs,
+   latdf,
+   latps,
+   latrd,
+   latrs,
+   latrz,
+   lauu2,
+   lauum,
+   opgtr,
+   opmtr,
+   orbdb,
+   orcsd,
+   org2l,
+   org2r,
+   orgbr,
+   orghr,
+   orgl2,
+   orglq,
+   orgql,
+   orgqr,
+   orgr2,
+   orgrq,
+   orgtr,
+   orm2l,
+   orm2r,
+   ormbr,
+   ormhr,
+   orml2,
+   ormlq,
+   ormql,
+   ormqr,
+   ormr2,
+   ormr3,
+   ormrq,
+   ormrz,
+   ormtr,
+   pbcon,
+   pbequ,
+   pbrfs,
+   pbstf,
+   pbsv,
+   pbsvx,
+   pbtf2,
+   pbtrf,
+   pbtrs,
+   pftrf,
+   pftri,
+   pftrs,
+   pocon,
+   poequ,
+   poequb,
+   porfs,
+   posv,
+   posvx,
+   potf2,
+   potrf,
+   potri,
+   potrs,
+   ppcon,
+   ppequ,
+   pprfs,
+   ppsv,
+   ppsvx,
+   pptrf,
+   pptri,
+   pptrs,
+   pstf2,
+   pstrf,
+   ptcon,
+   pteqr,
+   ptrfs,
+   ptsv,
+   ptsvx,
+   pttrf,
+   pttrs,
+   ptts2,
+   rscl,
+   sbev,
+   sbevd,
+   sbevx,
+   sbgst,
+   sbgv,
+   sbgvd,
+   sbgvx,
+   sbtrd,
+   sfrk,
+   spcon,
+   spev,
+   spevd,
+   spevx,
+   spgst,
+   spgv,
+   spgvd,
+   spgvx,
+   sprfs,
+   spsv,
+   spsvx,
+   sptrd,
+   sptrf,
+   sptri,
+   sptrs,
+   stebz,
+   stedc,
+   stegr,
+   stein,
+   stemr,
+   steqr,
+   sterf,
+   stev,
+   stevd,
+   stevr,
+   stevx,
+   sycon,
+   syconv,
+   syequb,
+   syev,
+   syevd,
+   syevr,
+   syevx,
+   sygs2,
+   sygst,
+   sygv,
+   sygvd,
+   sygvx,
+   syrfs,
+   sysv,
+   sysvx,
+   syswapr,
+   sytd2,
+   sytf2,
+   sytrd,
+   sytrf,
+   sytri,
+   sytri2,
+   sytri2x,
+   sytrs,
+   sytrs2,
+   tbcon,
+   tbrfs,
+   tbtrs,
+   tfsm,
+   tftri,
+   tfttp,
+   tfttr,
+   tgevc,
+   tgex2,
+   tgexc,
+   tgsen,
+   tgsja,
+   tgsna,
+   tgsy2,
+   tgsyl,
+   tpcon,
+   tprfs,
+   tptri,
+   tptrs,
+   tpttf,
+   tpttr,
+   trcon,
+   trevc,
+   trexc,
+   trrfs,
+   trsen,
+   trsna,
+   trsyl,
+   trti2,
+   trtri,
+   trtrs,
+   trttf,
+   trttp,
+   tzrzf,
+   ) where
+
+import qualified Numeric.LAPACK.FFI.Float as S
+import qualified Numeric.LAPACK.FFI.Double as D
+
+import qualified Numeric.Netlib.Class as Class
+
+import Foreign.Ptr (FunPtr, Ptr)
+import Foreign.C.Types
+
+
+
+newtype BBCSD a = BBCSD {getBBCSD :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+bbcsd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+bbcsd = getBBCSD $ Class.switchReal (BBCSD S.bbcsd) (BBCSD D.bbcsd)
+
+
+newtype BDSDC a = BDSDC {getBDSDC :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+bdsdc :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+bdsdc = getBDSDC $ Class.switchReal (BDSDC S.bdsdc) (BDSDC D.bdsdc)
+
+
+newtype BDSQR a = BDSQR {getBDSQR :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+bdsqr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+bdsqr = getBDSQR $ Class.switchReal (BDSQR S.bdsqr) (BDSQR D.bdsqr)
+
+
+newtype DISNA a = DISNA {getDISNA :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+disna :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+disna = getDISNA $ Class.switchReal (DISNA S.disna) (DISNA D.disna)
+
+
+newtype GBBRD a = GBBRD {getGBBRD :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+gbbrd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+gbbrd = getGBBRD $ Class.switchReal (GBBRD S.gbbrd) (GBBRD D.gbbrd)
+
+
+newtype GBCON a = GBCON {getGBCON :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbcon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gbcon = getGBCON $ Class.switchReal (GBCON S.gbcon) (GBCON D.gbcon)
+
+
+newtype GBEQU a = GBEQU {getGBEQU :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+gbequ :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+gbequ = getGBEQU $ Class.switchReal (GBEQU S.gbequ) (GBEQU D.gbequ)
+
+
+newtype GBEQUB a = GBEQUB {getGBEQUB :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+gbequb :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+gbequb = getGBEQUB $ Class.switchReal (GBEQUB S.gbequb) (GBEQUB D.gbequb)
+
+
+newtype GBRFS a = GBRFS {getGBRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbrfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gbrfs = getGBRFS $ Class.switchReal (GBRFS S.gbrfs) (GBRFS D.gbrfs)
+
+
+newtype GBSV a = GBSV {getGBSV :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbsv :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gbsv = getGBSV $ Class.switchReal (GBSV S.gbsv) (GBSV D.gbsv)
+
+
+newtype GBSVX a = GBSVX {getGBSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbsvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gbsvx = getGBSVX $ Class.switchReal (GBSVX S.gbsvx) (GBSVX D.gbsvx)
+
+
+newtype GBTF2 a = GBTF2 {getGBTF2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbtf2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+gbtf2 = getGBTF2 $ Class.switchReal (GBTF2 S.gbtf2) (GBTF2 D.gbtf2)
+
+
+newtype GBTRF a = GBTRF {getGBTRF :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbtrf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+gbtrf = getGBTRF $ Class.switchReal (GBTRF S.gbtrf) (GBTRF D.gbtrf)
+
+
+newtype GBTRS a = GBTRS {getGBTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gbtrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gbtrs = getGBTRS $ Class.switchReal (GBTRS S.gbtrs) (GBTRS D.gbtrs)
+
+
+newtype GEBAK a = GEBAK {getGEBAK :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gebak :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gebak = getGEBAK $ Class.switchReal (GEBAK S.gebak) (GEBAK D.gebak)
+
+
+newtype GEBAL a = GEBAL {getGEBAL :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+gebal :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+gebal = getGEBAL $ Class.switchReal (GEBAL S.gebal) (GEBAL D.gebal)
+
+
+newtype GEBD2 a = GEBD2 {getGEBD2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+gebd2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+gebd2 = getGEBD2 $ Class.switchReal (GEBD2 S.gebd2) (GEBD2 D.gebd2)
+
+
+newtype GEBRD a = GEBRD {getGEBRD :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gebrd :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gebrd = getGEBRD $ Class.switchReal (GEBRD S.gebrd) (GEBRD D.gebrd)
+
+
+newtype GECON a = GECON {getGECON :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gecon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gecon = getGECON $ Class.switchReal (GECON S.gecon) (GECON D.gecon)
+
+
+newtype GEEQU a = GEEQU {getGEEQU :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+geequ :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+geequ = getGEEQU $ Class.switchReal (GEEQU S.geequ) (GEEQU D.geequ)
+
+
+newtype GEEQUB a = GEEQUB {getGEEQUB :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+geequb :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+geequb = getGEEQUB $ Class.switchReal (GEEQUB S.geequb) (GEEQUB D.geequb)
+
+
+newtype GEES a = GEES {getGEES :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr a -> Ptr a -> IO Bool) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()}
+
+gees :: Class.Real a => Ptr CChar -> Ptr CChar -> FunPtr (Ptr a -> Ptr a -> IO Bool) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+gees = getGEES $ Class.switchReal (GEES S.gees) (GEES D.gees)
+
+
+newtype GEESX a = GEESX {getGEESX :: Ptr CChar -> Ptr CChar -> FunPtr (Ptr a -> Ptr a -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()}
+
+geesx :: Class.Real a => Ptr CChar -> Ptr CChar -> FunPtr (Ptr a -> Ptr a -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+geesx = getGEESX $ Class.switchReal (GEESX S.geesx) (GEESX D.geesx)
+
+
+newtype GEEV a = GEEV {getGEEV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geev :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+geev = getGEEV $ Class.switchReal (GEEV S.geev) (GEEV D.geev)
+
+
+newtype GEEVX a = GEEVX {getGEEVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geevx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+geevx = getGEEVX $ Class.switchReal (GEEVX S.geevx) (GEEVX D.geevx)
+
+
+newtype GEHD2 a = GEHD2 {getGEHD2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+gehd2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+gehd2 = getGEHD2 $ Class.switchReal (GEHD2 S.gehd2) (GEHD2 D.gehd2)
+
+
+newtype GEHRD a = GEHRD {getGEHRD :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gehrd :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gehrd = getGEHRD $ Class.switchReal (GEHRD S.gehrd) (GEHRD D.gehrd)
+
+
+newtype GEJSV a = GEJSV {getGEJSV :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gejsv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+gejsv = getGEJSV $ Class.switchReal (GEJSV S.gejsv) (GEJSV D.gejsv)
+
+
+newtype GELQ2 a = GELQ2 {getGELQ2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+gelq2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+gelq2 = getGELQ2 $ Class.switchReal (GELQ2 S.gelq2) (GELQ2 D.gelq2)
+
+
+newtype GELQF a = GELQF {getGELQF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gelqf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gelqf = getGELQF $ Class.switchReal (GELQF S.gelqf) (GELQF D.gelqf)
+
+
+newtype GELS a = GELS {getGELS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gels :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gels = getGELS $ Class.switchReal (GELS S.gels) (GELS D.gels)
+
+
+newtype GELSD a = GELSD {getGELSD :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gelsd :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+gelsd = getGELSD $ Class.switchReal (GELSD S.gelsd) (GELSD D.gelsd)
+
+
+newtype GELSS a = GELSS {getGELSS :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gelss :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gelss = getGELSS $ Class.switchReal (GELSS S.gelss) (GELSS D.gelss)
+
+
+newtype GELSY a = GELSY {getGELSY :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gelsy :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gelsy = getGELSY $ Class.switchReal (GELSY S.gelsy) (GELSY D.gelsy)
+
+
+newtype GEQL2 a = GEQL2 {getGEQL2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+geql2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+geql2 = getGEQL2 $ Class.switchReal (GEQL2 S.geql2) (GEQL2 D.geql2)
+
+
+newtype GEQLF a = GEQLF {getGEQLF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geqlf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+geqlf = getGEQLF $ Class.switchReal (GEQLF S.geqlf) (GEQLF D.geqlf)
+
+
+newtype GEQP3 a = GEQP3 {getGEQP3 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geqp3 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+geqp3 = getGEQP3 $ Class.switchReal (GEQP3 S.geqp3) (GEQP3 D.geqp3)
+
+
+newtype GEQR2 a = GEQR2 {getGEQR2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+geqr2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+geqr2 = getGEQR2 $ Class.switchReal (GEQR2 S.geqr2) (GEQR2 D.geqr2)
+
+
+newtype GEQR2P a = GEQR2P {getGEQR2P :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+geqr2p :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+geqr2p = getGEQR2P $ Class.switchReal (GEQR2P S.geqr2p) (GEQR2P D.geqr2p)
+
+
+newtype GEQRF a = GEQRF {getGEQRF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geqrf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+geqrf = getGEQRF $ Class.switchReal (GEQRF S.geqrf) (GEQRF D.geqrf)
+
+
+newtype GEQRFP a = GEQRFP {getGEQRFP :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+geqrfp :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+geqrfp = getGEQRFP $ Class.switchReal (GEQRFP S.geqrfp) (GEQRFP D.geqrfp)
+
+
+newtype GERFS a = GERFS {getGERFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gerfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gerfs = getGERFS $ Class.switchReal (GERFS S.gerfs) (GERFS D.gerfs)
+
+
+newtype GERQ2 a = GERQ2 {getGERQ2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+gerq2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+gerq2 = getGERQ2 $ Class.switchReal (GERQ2 S.gerq2) (GERQ2 D.gerq2)
+
+
+newtype GERQF a = GERQF {getGERQF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gerqf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gerqf = getGERQF $ Class.switchReal (GERQF S.gerqf) (GERQF D.gerqf)
+
+
+newtype GESC2 a = GESC2 {getGESC2 :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> IO ()}
+
+gesc2 :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> IO ()
+gesc2 = getGESC2 $ Class.switchReal (GESC2 S.gesc2) (GESC2 D.gesc2)
+
+
+newtype GESDD a = GESDD {getGESDD :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gesdd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+gesdd = getGESDD $ Class.switchReal (GESDD S.gesdd) (GESDD D.gesdd)
+
+
+newtype GESV a = GESV {getGESV :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gesv :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gesv = getGESV $ Class.switchReal (GESV S.gesv) (GESV D.gesv)
+
+
+newtype GESVD a = GESVD {getGESVD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gesvd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gesvd = getGESVD $ Class.switchReal (GESVD S.gesvd) (GESVD D.gesvd)
+
+
+newtype GESVJ a = GESVJ {getGESVJ :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gesvj :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gesvj = getGESVJ $ Class.switchReal (GESVJ S.gesvj) (GESVJ D.gesvj)
+
+
+newtype GESVX a = GESVX {getGESVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gesvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gesvx = getGESVX $ Class.switchReal (GESVX S.gesvx) (GESVX D.gesvx)
+
+
+newtype GETC2 a = GETC2 {getGETC2 :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getc2 :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+getc2 = getGETC2 $ Class.switchReal (GETC2 S.getc2) (GETC2 D.getc2)
+
+
+newtype GETF2 a = GETF2 {getGETF2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getf2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+getf2 = getGETF2 $ Class.switchReal (GETF2 S.getf2) (GETF2 D.getf2)
+
+
+newtype GETRF a = GETRF {getGETRF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getrf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+getrf = getGETRF $ Class.switchReal (GETRF S.getrf) (GETRF D.getrf)
+
+
+newtype GETRI a = GETRI {getGETRI :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getri :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+getri = getGETRI $ Class.switchReal (GETRI S.getri) (GETRI D.getri)
+
+
+newtype GETRS a = GETRS {getGETRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+getrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+getrs = getGETRS $ Class.switchReal (GETRS S.getrs) (GETRS D.getrs)
+
+
+newtype GGBAK a = GGBAK {getGGBAK :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggbak :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ggbak = getGGBAK $ Class.switchReal (GGBAK S.ggbak) (GGBAK D.ggbak)
+
+
+newtype GGBAL a = GGBAL {getGGBAL :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+ggbal :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+ggbal = getGGBAL $ Class.switchReal (GGBAL S.ggbal) (GGBAL D.ggbal)
+
+
+newtype GGES a = GGES {getGGES :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr a -> Ptr a -> Ptr a -> IO Bool) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()}
+
+gges :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr a -> Ptr a -> Ptr a -> IO Bool) -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+gges = getGGES $ Class.switchReal (GGES S.gges) (GGES D.gges)
+
+
+newtype GGESX a = GGESX {getGGESX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr a -> Ptr a -> Ptr a -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()}
+
+ggesx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> FunPtr (Ptr a -> Ptr a -> Ptr a -> IO Bool) -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+ggesx = getGGESX $ Class.switchReal (GGESX S.ggesx) (GGESX D.ggesx)
+
+
+newtype GGEV a = GGEV {getGGEV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggev :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ggev = getGGEV $ Class.switchReal (GGEV S.ggev) (GGEV D.ggev)
+
+
+newtype GGEVX a = GGEVX {getGGEVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()}
+
+ggevx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr CInt -> IO ()
+ggevx = getGGEVX $ Class.switchReal (GGEVX S.ggevx) (GGEVX D.ggevx)
+
+
+newtype GGGLM a = GGGLM {getGGGLM :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggglm :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ggglm = getGGGLM $ Class.switchReal (GGGLM S.ggglm) (GGGLM D.ggglm)
+
+
+newtype GGHRD a = GGHRD {getGGHRD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gghrd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gghrd = getGGHRD $ Class.switchReal (GGHRD S.gghrd) (GGHRD D.gghrd)
+
+
+newtype GGLSE a = GGLSE {getGGLSE :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gglse :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gglse = getGGLSE $ Class.switchReal (GGLSE S.gglse) (GGLSE D.gglse)
+
+
+newtype GGQRF a = GGQRF {getGGQRF :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggqrf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ggqrf = getGGQRF $ Class.switchReal (GGQRF S.ggqrf) (GGQRF D.ggqrf)
+
+
+newtype GGRQF a = GGRQF {getGGRQF :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ggrqf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ggrqf = getGGRQF $ Class.switchReal (GGRQF S.ggrqf) (GGRQF D.ggrqf)
+
+
+newtype GSVJ0 a = GSVJ0 {getGSVJ0 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gsvj0 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gsvj0 = getGSVJ0 $ Class.switchReal (GSVJ0 S.gsvj0) (GSVJ0 D.gsvj0)
+
+
+newtype GSVJ1 a = GSVJ1 {getGSVJ1 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gsvj1 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gsvj1 = getGSVJ1 $ Class.switchReal (GSVJ1 S.gsvj1) (GSVJ1 D.gsvj1)
+
+
+newtype GTCON a = GTCON {getGTCON :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gtcon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gtcon = getGTCON $ Class.switchReal (GTCON S.gtcon) (GTCON D.gtcon)
+
+
+newtype GTRFS a = GTRFS {getGTRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gtrfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gtrfs = getGTRFS $ Class.switchReal (GTRFS S.gtrfs) (GTRFS D.gtrfs)
+
+
+newtype GTSV a = GTSV {getGTSV :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gtsv :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gtsv = getGTSV $ Class.switchReal (GTSV S.gtsv) (GTSV D.gtsv)
+
+
+newtype GTSVX a = GTSVX {getGTSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gtsvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gtsvx = getGTSVX $ Class.switchReal (GTSVX S.gtsvx) (GTSVX D.gtsvx)
+
+
+newtype GTTRF a = GTTRF {getGTTRF :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gttrf :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gttrf = getGTTRF $ Class.switchReal (GTTRF S.gttrf) (GTTRF D.gttrf)
+
+
+newtype GTTRS a = GTTRS {getGTTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+gttrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+gttrs = getGTTRS $ Class.switchReal (GTTRS S.gttrs) (GTTRS D.gttrs)
+
+
+newtype GTTS2 a = GTTS2 {getGTTS2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+gtts2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+gtts2 = getGTTS2 $ Class.switchReal (GTTS2 S.gtts2) (GTTS2 D.gtts2)
+
+
+newtype HGEQZ a = HGEQZ {getHGEQZ :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hgeqz :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+hgeqz = getHGEQZ $ Class.switchReal (HGEQZ S.hgeqz) (HGEQZ D.hgeqz)
+
+
+newtype HSEIN a = HSEIN {getHSEIN :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hsein :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+hsein = getHSEIN $ Class.switchReal (HSEIN S.hsein) (HSEIN D.hsein)
+
+
+newtype HSEQR a = HSEQR {getHSEQR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+hseqr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+hseqr = getHSEQR $ Class.switchReal (HSEQR S.hseqr) (HSEQR D.hseqr)
+
+
+newtype ILALC a = ILALC {getILALC :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt}
+
+ilalc :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt
+ilalc = getILALC $ Class.switchReal (ILALC S.ilalc) (ILALC D.ilalc)
+
+
+newtype ILALR a = ILALR {getILALR :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt}
+
+ilalr :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt
+ilalr = getILALR $ Class.switchReal (ILALR S.ilalr) (ILALR D.ilalr)
+
+
+newtype ISNAN a = ISNAN {getISNAN :: Ptr a -> IO Bool}
+
+isnan :: Class.Real a => Ptr a -> IO Bool
+isnan = getISNAN $ Class.switchReal (ISNAN S.isnan) (ISNAN D.isnan)
+
+
+newtype LABAD a = LABAD {getLABAD :: Ptr a -> Ptr a -> IO ()}
+
+labad :: Class.Real a => Ptr a -> Ptr a -> IO ()
+labad = getLABAD $ Class.switchReal (LABAD S.labad) (LABAD D.labad)
+
+
+newtype LABRD a = LABRD {getLABRD :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+labrd :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+labrd = getLABRD $ Class.switchReal (LABRD S.labrd) (LABRD D.labrd)
+
+
+newtype LACN2 a = LACN2 {getLACN2 :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lacn2 :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lacn2 = getLACN2 $ Class.switchReal (LACN2 S.lacn2) (LACN2 D.lacn2)
+
+
+newtype LACON a = LACON {getLACON :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lacon :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lacon = getLACON $ Class.switchReal (LACON S.lacon) (LACON D.lacon)
+
+
+newtype LACPY a = LACPY {getLACPY :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lacpy :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lacpy = getLACPY $ Class.switchReal (LACPY S.lacpy) (LACPY D.lacpy)
+
+
+newtype LADIV a = LADIV {getLADIV :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+ladiv :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+ladiv = getLADIV $ Class.switchReal (LADIV S.ladiv) (LADIV D.ladiv)
+
+
+newtype LAE2 a = LAE2 {getLAE2 :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lae2 :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lae2 = getLAE2 $ Class.switchReal (LAE2 S.lae2) (LAE2 D.lae2)
+
+
+newtype LAEBZ a = LAEBZ {getLAEBZ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laebz :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+laebz = getLAEBZ $ Class.switchReal (LAEBZ S.laebz) (LAEBZ D.laebz)
+
+
+newtype LAED0 a = LAED0 {getLAED0 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laed0 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+laed0 = getLAED0 $ Class.switchReal (LAED0 S.laed0) (LAED0 D.laed0)
+
+
+newtype LAED1 a = LAED1 {getLAED1 :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laed1 :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+laed1 = getLAED1 $ Class.switchReal (LAED1 S.laed1) (LAED1 D.laed1)
+
+
+newtype LAED2 a = LAED2 {getLAED2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laed2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+laed2 = getLAED2 $ Class.switchReal (LAED2 S.laed2) (LAED2 D.laed2)
+
+
+newtype LAED3 a = LAED3 {getLAED3 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+laed3 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+laed3 = getLAED3 $ Class.switchReal (LAED3 S.laed3) (LAED3 D.laed3)
+
+
+newtype LAED4 a = LAED4 {getLAED4 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+laed4 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+laed4 = getLAED4 $ Class.switchReal (LAED4 S.laed4) (LAED4 D.laed4)
+
+
+newtype LAED5 a = LAED5 {getLAED5 :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+laed5 :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+laed5 = getLAED5 $ Class.switchReal (LAED5 S.laed5) (LAED5 D.laed5)
+
+
+newtype LAED6 a = LAED6 {getLAED6 :: Ptr CInt -> Ptr Bool -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+laed6 :: Class.Real a => Ptr CInt -> Ptr Bool -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+laed6 = getLAED6 $ Class.switchReal (LAED6 S.laed6) (LAED6 D.laed6)
+
+
+newtype LAED7 a = LAED7 {getLAED7 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laed7 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+laed7 = getLAED7 $ Class.switchReal (LAED7 S.laed7) (LAED7 D.laed7)
+
+
+newtype LAED8 a = LAED8 {getLAED8 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laed8 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+laed8 = getLAED8 $ Class.switchReal (LAED8 S.laed8) (LAED8 D.laed8)
+
+
+newtype LAED9 a = LAED9 {getLAED9 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laed9 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+laed9 = getLAED9 $ Class.switchReal (LAED9 S.laed9) (LAED9 D.laed9)
+
+
+newtype LAEDA a = LAEDA {getLAEDA :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+laeda :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+laeda = getLAEDA $ Class.switchReal (LAEDA S.laeda) (LAEDA D.laeda)
+
+
+newtype LAEIN a = LAEIN {getLAEIN :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+laein :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+laein = getLAEIN $ Class.switchReal (LAEIN S.laein) (LAEIN D.laein)
+
+
+newtype LAEV2 a = LAEV2 {getLAEV2 :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+laev2 :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+laev2 = getLAEV2 $ Class.switchReal (LAEV2 S.laev2) (LAEV2 D.laev2)
+
+
+newtype LAEXC a = LAEXC {getLAEXC :: Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+laexc :: Class.Real a => Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+laexc = getLAEXC $ Class.switchReal (LAEXC S.laexc) (LAEXC D.laexc)
+
+
+newtype LAG2 a = LAG2 {getLAG2 :: Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lag2 :: Class.Real a => Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lag2 = getLAG2 $ Class.switchReal (LAG2 S.lag2) (LAG2 D.lag2)
+
+
+newtype LAGS2 a = LAGS2 {getLAGS2 :: Ptr Bool -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lags2 :: Class.Real a => Ptr Bool -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lags2 = getLAGS2 $ Class.switchReal (LAGS2 S.lags2) (LAGS2 D.lags2)
+
+
+newtype LAGTF a = LAGTF {getLAGTF :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lagtf :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lagtf = getLAGTF $ Class.switchReal (LAGTF S.lagtf) (LAGTF D.lagtf)
+
+
+newtype LAGTM a = LAGTM {getLAGTM :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+lagtm :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+lagtm = getLAGTM $ Class.switchReal (LAGTM S.lagtm) (LAGTM D.lagtm)
+
+
+newtype LAGTS a = LAGTS {getLAGTS :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+lagts :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+lagts = getLAGTS $ Class.switchReal (LAGTS S.lagts) (LAGTS D.lagts)
+
+
+newtype LAGV2 a = LAGV2 {getLAGV2 :: Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lagv2 :: Class.Real a => Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lagv2 = getLAGV2 $ Class.switchReal (LAGV2 S.lagv2) (LAGV2 D.lagv2)
+
+
+newtype LAHQR a = LAHQR {getLAHQR :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lahqr :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lahqr = getLAHQR $ Class.switchReal (LAHQR S.lahqr) (LAHQR D.lahqr)
+
+
+newtype LAHR2 a = LAHR2 {getLAHR2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lahr2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lahr2 = getLAHR2 $ Class.switchReal (LAHR2 S.lahr2) (LAHR2 D.lahr2)
+
+
+newtype LAIC1 a = LAIC1 {getLAIC1 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+laic1 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+laic1 = getLAIC1 $ Class.switchReal (LAIC1 S.laic1) (LAIC1 D.laic1)
+
+
+newtype LAISNAN a = LAISNAN {getLAISNAN :: Ptr a -> Ptr a -> IO Bool}
+
+laisnan :: Class.Real a => Ptr a -> Ptr a -> IO Bool
+laisnan = getLAISNAN $ Class.switchReal (LAISNAN S.laisnan) (LAISNAN D.laisnan)
+
+
+newtype LALN2 a = LALN2 {getLALN2 :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+laln2 :: Class.Real a => Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+laln2 = getLALN2 $ Class.switchReal (LALN2 S.laln2) (LALN2 D.laln2)
+
+
+newtype LALS0 a = LALS0 {getLALS0 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+lals0 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+lals0 = getLALS0 $ Class.switchReal (LALS0 S.lals0) (LALS0 D.lals0)
+
+
+newtype LALSA a = LALSA {getLALSA :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lalsa :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lalsa = getLALSA $ Class.switchReal (LALSA S.lalsa) (LALSA D.lalsa)
+
+
+newtype LALSD a = LALSD {getLALSD :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lalsd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lalsd = getLALSD $ Class.switchReal (LALSD S.lalsd) (LALSD D.lalsd)
+
+
+newtype LAMRG a = LAMRG {getLAMRG :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lamrg :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+lamrg = getLAMRG $ Class.switchReal (LAMRG S.lamrg) (LAMRG D.lamrg)
+
+
+newtype LANEG a = LANEG {getLANEG :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO CInt}
+
+laneg :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO CInt
+laneg = getLANEG $ Class.switchReal (LANEG S.laneg) (LANEG D.laneg)
+
+
+newtype LANGB a = LANGB {getLANGB :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a}
+
+langb :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a
+langb = getLANGB $ Class.switchReal (LANGB S.langb) (LANGB D.langb)
+
+
+newtype LANGE a = LANGE {getLANGE :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a}
+
+lange :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a
+lange = getLANGE $ Class.switchReal (LANGE S.lange) (LANGE D.lange)
+
+
+newtype LANGT a = LANGT {getLANGT :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> IO a}
+
+langt :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> IO a
+langt = getLANGT $ Class.switchReal (LANGT S.langt) (LANGT D.langt)
+
+
+newtype LANHS a = LANHS {getLANHS :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a}
+
+lanhs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a
+lanhs = getLANHS $ Class.switchReal (LANHS S.lanhs) (LANHS D.lanhs)
+
+
+newtype LANSB a = LANSB {getLANSB :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a}
+
+lansb :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a
+lansb = getLANSB $ Class.switchReal (LANSB S.lansb) (LANSB D.lansb)
+
+
+newtype LANSF a = LANSF {getLANSF :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> IO a}
+
+lansf :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> IO a
+lansf = getLANSF $ Class.switchReal (LANSF S.lansf) (LANSF D.lansf)
+
+
+newtype LANSP a = LANSP {getLANSP :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> IO a}
+
+lansp :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> IO a
+lansp = getLANSP $ Class.switchReal (LANSP S.lansp) (LANSP D.lansp)
+
+
+newtype LANST a = LANST {getLANST :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> IO a}
+
+lanst :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> IO a
+lanst = getLANST $ Class.switchReal (LANST S.lanst) (LANST D.lanst)
+
+
+newtype LANSY a = LANSY {getLANSY :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a}
+
+lansy :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a
+lansy = getLANSY $ Class.switchReal (LANSY S.lansy) (LANSY D.lansy)
+
+
+newtype LANTB a = LANTB {getLANTB :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a}
+
+lantb :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a
+lantb = getLANTB $ Class.switchReal (LANTB S.lantb) (LANTB D.lantb)
+
+
+newtype LANTP a = LANTP {getLANTP :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> IO a}
+
+lantp :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> IO a
+lantp = getLANTP $ Class.switchReal (LANTP S.lantp) (LANTP D.lantp)
+
+
+newtype LANTR a = LANTR {getLANTR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a}
+
+lantr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO a
+lantr = getLANTR $ Class.switchReal (LANTR S.lantr) (LANTR D.lantr)
+
+
+newtype LANV2 a = LANV2 {getLANV2 :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lanv2 :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lanv2 = getLANV2 $ Class.switchReal (LANV2 S.lanv2) (LANV2 D.lanv2)
+
+
+newtype LAPLL a = LAPLL {getLAPLL :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+lapll :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+lapll = getLAPLL $ Class.switchReal (LAPLL S.lapll) (LAPLL D.lapll)
+
+
+newtype LAPMR a = LAPMR {getLAPMR :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lapmr :: Class.Real a => Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lapmr = getLAPMR $ Class.switchReal (LAPMR S.lapmr) (LAPMR D.lapmr)
+
+
+newtype LAPMT a = LAPMT {getLAPMT :: Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lapmt :: Class.Real a => Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lapmt = getLAPMT $ Class.switchReal (LAPMT S.lapmt) (LAPMT D.lapmt)
+
+
+newtype LAPY2 a = LAPY2 {getLAPY2 :: Ptr a -> Ptr a -> IO a}
+
+lapy2 :: Class.Real a => Ptr a -> Ptr a -> IO a
+lapy2 = getLAPY2 $ Class.switchReal (LAPY2 S.lapy2) (LAPY2 D.lapy2)
+
+
+newtype LAPY3 a = LAPY3 {getLAPY3 :: Ptr a -> Ptr a -> Ptr a -> IO a}
+
+lapy3 :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> IO a
+lapy3 = getLAPY3 $ Class.switchReal (LAPY3 S.lapy3) (LAPY3 D.lapy3)
+
+
+newtype LAQGB a = LAQGB {getLAQGB :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqgb :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqgb = getLAQGB $ Class.switchReal (LAQGB S.laqgb) (LAQGB D.laqgb)
+
+
+newtype LAQGE a = LAQGE {getLAQGE :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqge :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqge = getLAQGE $ Class.switchReal (LAQGE S.laqge) (LAQGE D.laqge)
+
+
+newtype LAQP2 a = LAQP2 {getLAQP2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+laqp2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+laqp2 = getLAQP2 $ Class.switchReal (LAQP2 S.laqp2) (LAQP2 D.laqp2)
+
+
+newtype LAQPS a = LAQPS {getLAQPS :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+laqps :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+laqps = getLAQPS $ Class.switchReal (LAQPS S.laqps) (LAQPS D.laqps)
+
+
+newtype LAQR0 a = LAQR0 {getLAQR0 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laqr0 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+laqr0 = getLAQR0 $ Class.switchReal (LAQR0 S.laqr0) (LAQR0 D.laqr0)
+
+
+newtype LAQR1 a = LAQR1 {getLAQR1 :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+laqr1 :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+laqr1 = getLAQR1 $ Class.switchReal (LAQR1 S.laqr1) (LAQR1 D.laqr1)
+
+
+newtype LAQR2 a = LAQR2 {getLAQR2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+laqr2 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+laqr2 = getLAQR2 $ Class.switchReal (LAQR2 S.laqr2) (LAQR2 D.laqr2)
+
+
+newtype LAQR3 a = LAQR3 {getLAQR3 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+laqr3 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+laqr3 = getLAQR3 $ Class.switchReal (LAQR3 S.laqr3) (LAQR3 D.laqr3)
+
+
+newtype LAQR4 a = LAQR4 {getLAQR4 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laqr4 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+laqr4 = getLAQR4 $ Class.switchReal (LAQR4 S.laqr4) (LAQR4 D.laqr4)
+
+
+newtype LAQR5 a = LAQR5 {getLAQR5 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+laqr5 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+laqr5 = getLAQR5 $ Class.switchReal (LAQR5 S.laqr5) (LAQR5 D.laqr5)
+
+
+newtype LAQSB a = LAQSB {getLAQSB :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqsb :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqsb = getLAQSB $ Class.switchReal (LAQSB S.laqsb) (LAQSB D.laqsb)
+
+
+newtype LAQSP a = LAQSP {getLAQSP :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqsp :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqsp = getLAQSP $ Class.switchReal (LAQSP S.laqsp) (LAQSP D.laqsp)
+
+
+newtype LAQSY a = LAQSY {getLAQSY :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()}
+
+laqsy :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CChar -> IO ()
+laqsy = getLAQSY $ Class.switchReal (LAQSY S.laqsy) (LAQSY D.laqsy)
+
+
+newtype LAQTR a = LAQTR {getLAQTR :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+laqtr :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+laqtr = getLAQTR $ Class.switchReal (LAQTR S.laqtr) (LAQTR D.laqtr)
+
+
+newtype LAR1V a = LAR1V {getLAR1V :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lar1v :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lar1v = getLAR1V $ Class.switchReal (LAR1V S.lar1v) (LAR1V D.lar1v)
+
+
+newtype LAR2V a = LAR2V {getLAR2V :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+lar2v :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+lar2v = getLAR2V $ Class.switchReal (LAR2V S.lar2v) (LAR2V D.lar2v)
+
+
+newtype LARF a = LARF {getLARF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+larf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+larf = getLARF $ Class.switchReal (LARF S.larf) (LARF D.larf)
+
+
+newtype LARFB a = LARFB {getLARFB :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+larfb :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+larfb = getLARFB $ Class.switchReal (LARFB S.larfb) (LARFB D.larfb)
+
+
+newtype LARFG a = LARFG {getLARFG :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+larfg :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+larfg = getLARFG $ Class.switchReal (LARFG S.larfg) (LARFG D.larfg)
+
+
+newtype LARFGP a = LARFGP {getLARFGP :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+larfgp :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+larfgp = getLARFGP $ Class.switchReal (LARFGP S.larfgp) (LARFGP D.larfgp)
+
+
+newtype LARFT a = LARFT {getLARFT :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+larft :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+larft = getLARFT $ Class.switchReal (LARFT S.larft) (LARFT D.larft)
+
+
+newtype LARFX a = LARFX {getLARFX :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+larfx :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+larfx = getLARFX $ Class.switchReal (LARFX S.larfx) (LARFX D.larfx)
+
+
+newtype LARGV a = LARGV {getLARGV :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+largv :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+largv = getLARGV $ Class.switchReal (LARGV S.largv) (LARGV D.largv)
+
+
+newtype LARNV a = LARNV {getLARNV :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> IO ()}
+
+larnv :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> IO ()
+larnv = getLARNV $ Class.switchReal (LARNV S.larnv) (LARNV D.larnv)
+
+
+newtype LARRA a = LARRA {getLARRA :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+larra :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+larra = getLARRA $ Class.switchReal (LARRA S.larra) (LARRA D.larra)
+
+
+newtype LARRB a = LARRB {getLARRB :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+larrb :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+larrb = getLARRB $ Class.switchReal (LARRB S.larrb) (LARRB D.larrb)
+
+
+newtype LARRC a = LARRC {getLARRC :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+larrc :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+larrc = getLARRC $ Class.switchReal (LARRC S.larrc) (LARRC D.larrc)
+
+
+newtype LARRD a = LARRD {getLARRD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+larrd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+larrd = getLARRD $ Class.switchReal (LARRD S.larrd) (LARRD D.larrd)
+
+
+newtype LARRE a = LARRE {getLARRE :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+larre :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+larre = getLARRE $ Class.switchReal (LARRE S.larre) (LARRE D.larre)
+
+
+newtype LARRF a = LARRF {getLARRF :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+larrf :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+larrf = getLARRF $ Class.switchReal (LARRF S.larrf) (LARRF D.larrf)
+
+
+newtype LARRJ a = LARRJ {getLARRJ :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+larrj :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+larrj = getLARRJ $ Class.switchReal (LARRJ S.larrj) (LARRJ D.larrj)
+
+
+newtype LARRK a = LARRK {getLARRK :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+larrk :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+larrk = getLARRK $ Class.switchReal (LARRK S.larrk) (LARRK D.larrk)
+
+
+newtype LARRR a = LARRR {getLARRR :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+larrr :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+larrr = getLARRR $ Class.switchReal (LARRR S.larrr) (LARRR D.larrr)
+
+
+newtype LARRV a = LARRV {getLARRV :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+larrv :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+larrv = getLARRV $ Class.switchReal (LARRV S.larrv) (LARRV D.larrv)
+
+
+newtype LARTG a = LARTG {getLARTG :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lartg :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lartg = getLARTG $ Class.switchReal (LARTG S.lartg) (LARTG D.lartg)
+
+
+newtype LARTGP a = LARTGP {getLARTGP :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lartgp :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lartgp = getLARTGP $ Class.switchReal (LARTGP S.lartgp) (LARTGP D.lartgp)
+
+
+newtype LARTGS a = LARTGS {getLARTGS :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lartgs :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lartgs = getLARTGS $ Class.switchReal (LARTGS S.lartgs) (LARTGS D.lartgs)
+
+
+newtype LARTV a = LARTV {getLARTV :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+lartv :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+lartv = getLARTV $ Class.switchReal (LARTV S.lartv) (LARTV D.lartv)
+
+
+newtype LARUV a = LARUV {getLARUV :: Ptr CInt -> Ptr CInt -> Ptr a -> IO ()}
+
+laruv :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> IO ()
+laruv = getLARUV $ Class.switchReal (LARUV S.laruv) (LARUV D.laruv)
+
+
+newtype LARZ a = LARZ {getLARZ :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+larz :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+larz = getLARZ $ Class.switchReal (LARZ S.larz) (LARZ D.larz)
+
+
+newtype LARZB a = LARZB {getLARZB :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+larzb :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+larzb = getLARZB $ Class.switchReal (LARZB S.larzb) (LARZB D.larzb)
+
+
+newtype LARZT a = LARZT {getLARZT :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+larzt :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+larzt = getLARZT $ Class.switchReal (LARZT S.larzt) (LARZT D.larzt)
+
+
+newtype LAS2 a = LAS2 {getLAS2 :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+las2 :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+las2 = getLAS2 $ Class.switchReal (LAS2 S.las2) (LAS2 D.las2)
+
+
+newtype LASCL a = LASCL {getLASCL :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lascl :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lascl = getLASCL $ Class.switchReal (LASCL S.lascl) (LASCL D.lascl)
+
+
+newtype LASD0 a = LASD0 {getLASD0 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lasd0 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lasd0 = getLASD0 $ Class.switchReal (LASD0 S.lasd0) (LASD0 D.lasd0)
+
+
+newtype LASD1 a = LASD1 {getLASD1 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lasd1 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lasd1 = getLASD1 $ Class.switchReal (LASD1 S.lasd1) (LASD1 D.lasd1)
+
+
+newtype LASD2 a = LASD2 {getLASD2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lasd2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+lasd2 = getLASD2 $ Class.switchReal (LASD2 S.lasd2) (LASD2 D.lasd2)
+
+
+newtype LASD3 a = LASD3 {getLASD3 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lasd3 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lasd3 = getLASD3 $ Class.switchReal (LASD3 S.lasd3) (LASD3 D.lasd3)
+
+
+newtype LASD4 a = LASD4 {getLASD4 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+lasd4 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+lasd4 = getLASD4 $ Class.switchReal (LASD4 S.lasd4) (LASD4 D.lasd4)
+
+
+newtype LASD5 a = LASD5 {getLASD5 :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lasd5 :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lasd5 = getLASD5 $ Class.switchReal (LASD5 S.lasd5) (LASD5 D.lasd5)
+
+
+newtype LASD6 a = LASD6 {getLASD6 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lasd6 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lasd6 = getLASD6 $ Class.switchReal (LASD6 S.lasd6) (LASD6 D.lasd6)
+
+
+newtype LASD7 a = LASD7 {getLASD7 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+lasd7 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+lasd7 = getLASD7 $ Class.switchReal (LASD7 S.lasd7) (LASD7 D.lasd7)
+
+
+newtype LASD8 a = LASD8 {getLASD8 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+lasd8 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+lasd8 = getLASD8 $ Class.switchReal (LASD8 S.lasd8) (LASD8 D.lasd8)
+
+
+newtype LASDA a = LASDA {getLASDA :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lasda :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lasda = getLASDA $ Class.switchReal (LASDA S.lasda) (LASDA D.lasda)
+
+
+newtype LASDQ a = LASDQ {getLASDQ :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lasdq :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lasdq = getLASDQ $ Class.switchReal (LASDQ S.lasdq) (LASDQ D.lasdq)
+
+
+newtype LASET a = LASET {getLASET :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+laset :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+laset = getLASET $ Class.switchReal (LASET S.laset) (LASET D.laset)
+
+
+newtype LASQ1 a = LASQ1 {getLASQ1 :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+lasq1 :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+lasq1 = getLASQ1 $ Class.switchReal (LASQ1 S.lasq1) (LASQ1 D.lasq1)
+
+
+newtype LASQ2 a = LASQ2 {getLASQ2 :: Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lasq2 :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lasq2 = getLASQ2 $ Class.switchReal (LASQ2 S.lasq2) (LASQ2 D.lasq2)
+
+
+newtype LASQ4 a = LASQ4 {getLASQ4 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()}
+
+lasq4 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> IO ()
+lasq4 = getLASQ4 $ Class.switchReal (LASQ4 S.lasq4) (LASQ4 D.lasq4)
+
+
+newtype LASQ5 a = LASQ5 {getLASQ5 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr Bool -> Ptr a -> IO ()}
+
+lasq5 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr Bool -> Ptr a -> IO ()
+lasq5 = getLASQ5 $ Class.switchReal (LASQ5 S.lasq5) (LASQ5 D.lasq5)
+
+
+newtype LASQ6 a = LASQ6 {getLASQ6 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lasq6 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lasq6 = getLASQ6 $ Class.switchReal (LASQ6 S.lasq6) (LASQ6 D.lasq6)
+
+
+newtype LASR a = LASR {getLASR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+lasr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+lasr = getLASR $ Class.switchReal (LASR S.lasr) (LASR D.lasr)
+
+
+newtype LASRT a = LASRT {getLASRT :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lasrt :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lasrt = getLASRT $ Class.switchReal (LASRT S.lasrt) (LASRT D.lasrt)
+
+
+newtype LASSQ a = LASSQ {getLASSQ :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> IO ()}
+
+lassq :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> IO ()
+lassq = getLASSQ $ Class.switchReal (LASSQ S.lassq) (LASSQ D.lassq)
+
+
+newtype LASV2 a = LASV2 {getLASV2 :: Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()}
+
+lasv2 :: Class.Real a => Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> IO ()
+lasv2 = getLASV2 $ Class.switchReal (LASV2 S.lasv2) (LASV2 D.lasv2)
+
+
+newtype LASWP a = LASWP {getLASWP :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+laswp :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+laswp = getLASWP $ Class.switchReal (LASWP S.laswp) (LASWP D.laswp)
+
+
+newtype LASY2 a = LASY2 {getLASY2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+lasy2 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+lasy2 = getLASY2 $ Class.switchReal (LASY2 S.lasy2) (LASY2 D.lasy2)
+
+
+newtype LASYF a = LASYF {getLASYF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lasyf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lasyf = getLASYF $ Class.switchReal (LASYF S.lasyf) (LASYF D.lasyf)
+
+
+newtype LATBS a = LATBS {getLATBS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+latbs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+latbs = getLATBS $ Class.switchReal (LATBS S.latbs) (LATBS D.latbs)
+
+
+newtype LATDF a = LATDF {getLATDF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+latdf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+latdf = getLATDF $ Class.switchReal (LATDF S.latdf) (LATDF D.latdf)
+
+
+newtype LATPS a = LATPS {getLATPS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+latps :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+latps = getLATPS $ Class.switchReal (LATPS S.latps) (LATPS D.latps)
+
+
+newtype LATRD a = LATRD {getLATRD :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+latrd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+latrd = getLATRD $ Class.switchReal (LATRD S.latrd) (LATRD D.latrd)
+
+
+newtype LATRS a = LATRS {getLATRS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+latrs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+latrs = getLATRS $ Class.switchReal (LATRS S.latrs) (LATRS D.latrs)
+
+
+newtype LATRZ a = LATRZ {getLATRZ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> IO ()}
+
+latrz :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> IO ()
+latrz = getLATRZ $ Class.switchReal (LATRZ S.latrz) (LATRZ D.latrz)
+
+
+newtype LAUU2 a = LAUU2 {getLAUU2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lauu2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lauu2 = getLAUU2 $ Class.switchReal (LAUU2 S.lauu2) (LAUU2 D.lauu2)
+
+
+newtype LAUUM a = LAUUM {getLAUUM :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+lauum :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+lauum = getLAUUM $ Class.switchReal (LAUUM S.lauum) (LAUUM D.lauum)
+
+
+newtype OPGTR a = OPGTR {getOPGTR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+opgtr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+opgtr = getOPGTR $ Class.switchReal (OPGTR S.opgtr) (OPGTR D.opgtr)
+
+
+newtype OPMTR a = OPMTR {getOPMTR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+opmtr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+opmtr = getOPMTR $ Class.switchReal (OPMTR S.opmtr) (OPMTR D.opmtr)
+
+
+newtype ORBDB a = ORBDB {getORBDB :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+orbdb :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+orbdb = getORBDB $ Class.switchReal (ORBDB S.orbdb) (ORBDB D.orbdb)
+
+
+newtype ORCSD a = ORCSD {getORCSD :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+orcsd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+orcsd = getORCSD $ Class.switchReal (ORCSD S.orcsd) (ORCSD D.orcsd)
+
+
+newtype ORG2L a = ORG2L {getORG2L :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+org2l :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+org2l = getORG2L $ Class.switchReal (ORG2L S.org2l) (ORG2L D.org2l)
+
+
+newtype ORG2R a = ORG2R {getORG2R :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+org2r :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+org2r = getORG2R $ Class.switchReal (ORG2R S.org2r) (ORG2R D.org2r)
+
+
+newtype ORGBR a = ORGBR {getORGBR :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+orgbr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+orgbr = getORGBR $ Class.switchReal (ORGBR S.orgbr) (ORGBR D.orgbr)
+
+
+newtype ORGHR a = ORGHR {getORGHR :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+orghr :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+orghr = getORGHR $ Class.switchReal (ORGHR S.orghr) (ORGHR D.orghr)
+
+
+newtype ORGL2 a = ORGL2 {getORGL2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+orgl2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+orgl2 = getORGL2 $ Class.switchReal (ORGL2 S.orgl2) (ORGL2 D.orgl2)
+
+
+newtype ORGLQ a = ORGLQ {getORGLQ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+orglq :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+orglq = getORGLQ $ Class.switchReal (ORGLQ S.orglq) (ORGLQ D.orglq)
+
+
+newtype ORGQL a = ORGQL {getORGQL :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+orgql :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+orgql = getORGQL $ Class.switchReal (ORGQL S.orgql) (ORGQL D.orgql)
+
+
+newtype ORGQR a = ORGQR {getORGQR :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+orgqr :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+orgqr = getORGQR $ Class.switchReal (ORGQR S.orgqr) (ORGQR D.orgqr)
+
+
+newtype ORGR2 a = ORGR2 {getORGR2 :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+orgr2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+orgr2 = getORGR2 $ Class.switchReal (ORGR2 S.orgr2) (ORGR2 D.orgr2)
+
+
+newtype ORGRQ a = ORGRQ {getORGRQ :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+orgrq :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+orgrq = getORGRQ $ Class.switchReal (ORGRQ S.orgrq) (ORGRQ D.orgrq)
+
+
+newtype ORGTR a = ORGTR {getORGTR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+orgtr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+orgtr = getORGTR $ Class.switchReal (ORGTR S.orgtr) (ORGTR D.orgtr)
+
+
+newtype ORM2L a = ORM2L {getORM2L :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+orm2l :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+orm2l = getORM2L $ Class.switchReal (ORM2L S.orm2l) (ORM2L D.orm2l)
+
+
+newtype ORM2R a = ORM2R {getORM2R :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+orm2r :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+orm2r = getORM2R $ Class.switchReal (ORM2R S.orm2r) (ORM2R D.orm2r)
+
+
+newtype ORMBR a = ORMBR {getORMBR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ormbr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ormbr = getORMBR $ Class.switchReal (ORMBR S.ormbr) (ORMBR D.ormbr)
+
+
+newtype ORMHR a = ORMHR {getORMHR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ormhr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ormhr = getORMHR $ Class.switchReal (ORMHR S.ormhr) (ORMHR D.ormhr)
+
+
+newtype ORML2 a = ORML2 {getORML2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+orml2 :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+orml2 = getORML2 $ Class.switchReal (ORML2 S.orml2) (ORML2 D.orml2)
+
+
+newtype ORMLQ a = ORMLQ {getORMLQ :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ormlq :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ormlq = getORMLQ $ Class.switchReal (ORMLQ S.ormlq) (ORMLQ D.ormlq)
+
+
+newtype ORMQL a = ORMQL {getORMQL :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ormql :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ormql = getORMQL $ Class.switchReal (ORMQL S.ormql) (ORMQL D.ormql)
+
+
+newtype ORMQR a = ORMQR {getORMQR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ormqr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ormqr = getORMQR $ Class.switchReal (ORMQR S.ormqr) (ORMQR D.ormqr)
+
+
+newtype ORMR2 a = ORMR2 {getORMR2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+ormr2 :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+ormr2 = getORMR2 $ Class.switchReal (ORMR2 S.ormr2) (ORMR2 D.ormr2)
+
+
+newtype ORMR3 a = ORMR3 {getORMR3 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+ormr3 :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+ormr3 = getORMR3 $ Class.switchReal (ORMR3 S.ormr3) (ORMR3 D.ormr3)
+
+
+newtype ORMRQ a = ORMRQ {getORMRQ :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ormrq :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ormrq = getORMRQ $ Class.switchReal (ORMRQ S.ormrq) (ORMRQ D.ormrq)
+
+
+newtype ORMRZ a = ORMRZ {getORMRZ :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ormrz :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ormrz = getORMRZ $ Class.switchReal (ORMRZ S.ormrz) (ORMRZ D.ormrz)
+
+
+newtype ORMTR a = ORMTR {getORMTR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ormtr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ormtr = getORMTR $ Class.switchReal (ORMTR S.ormtr) (ORMTR D.ormtr)
+
+
+newtype PBCON a = PBCON {getPBCON :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbcon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbcon = getPBCON $ Class.switchReal (PBCON S.pbcon) (PBCON D.pbcon)
+
+
+newtype PBEQU a = PBEQU {getPBEQU :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+pbequ :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+pbequ = getPBEQU $ Class.switchReal (PBEQU S.pbequ) (PBEQU D.pbequ)
+
+
+newtype PBRFS a = PBRFS {getPBRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbrfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbrfs = getPBRFS $ Class.switchReal (PBRFS S.pbrfs) (PBRFS D.pbrfs)
+
+
+newtype PBSTF a = PBSTF {getPBSTF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbstf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbstf = getPBSTF $ Class.switchReal (PBSTF S.pbstf) (PBSTF D.pbstf)
+
+
+newtype PBSV a = PBSV {getPBSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbsv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbsv = getPBSV $ Class.switchReal (PBSV S.pbsv) (PBSV D.pbsv)
+
+
+newtype PBSVX a = PBSVX {getPBSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbsvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbsvx = getPBSVX $ Class.switchReal (PBSVX S.pbsvx) (PBSVX D.pbsvx)
+
+
+newtype PBTF2 a = PBTF2 {getPBTF2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbtf2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbtf2 = getPBTF2 $ Class.switchReal (PBTF2 S.pbtf2) (PBTF2 D.pbtf2)
+
+
+newtype PBTRF a = PBTRF {getPBTRF :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbtrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbtrf = getPBTRF $ Class.switchReal (PBTRF S.pbtrf) (PBTRF D.pbtrf)
+
+
+newtype PBTRS a = PBTRS {getPBTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pbtrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pbtrs = getPBTRS $ Class.switchReal (PBTRS S.pbtrs) (PBTRS D.pbtrs)
+
+
+newtype PFTRF a = PFTRF {getPFTRF :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+pftrf :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+pftrf = getPFTRF $ Class.switchReal (PFTRF S.pftrf) (PFTRF D.pftrf)
+
+
+newtype PFTRI a = PFTRI {getPFTRI :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+pftri :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+pftri = getPFTRI $ Class.switchReal (PFTRI S.pftri) (PFTRI D.pftri)
+
+
+newtype PFTRS a = PFTRS {getPFTRS :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pftrs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pftrs = getPFTRS $ Class.switchReal (PFTRS S.pftrs) (PFTRS D.pftrs)
+
+
+newtype POCON a = POCON {getPOCON :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pocon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pocon = getPOCON $ Class.switchReal (POCON S.pocon) (POCON D.pocon)
+
+
+newtype POEQU a = POEQU {getPOEQU :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+poequ :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+poequ = getPOEQU $ Class.switchReal (POEQU S.poequ) (POEQU D.poequ)
+
+
+newtype POEQUB a = POEQUB {getPOEQUB :: Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+poequb :: Class.Real a => Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+poequb = getPOEQUB $ Class.switchReal (POEQUB S.poequb) (POEQUB D.poequb)
+
+
+newtype PORFS a = PORFS {getPORFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+porfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+porfs = getPORFS $ Class.switchReal (PORFS S.porfs) (PORFS D.porfs)
+
+
+newtype POSV a = POSV {getPOSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+posv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+posv = getPOSV $ Class.switchReal (POSV S.posv) (POSV D.posv)
+
+
+newtype POSVX a = POSVX {getPOSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+posvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CChar -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+posvx = getPOSVX $ Class.switchReal (POSVX S.posvx) (POSVX D.posvx)
+
+
+newtype POTF2 a = POTF2 {getPOTF2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potf2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+potf2 = getPOTF2 $ Class.switchReal (POTF2 S.potf2) (POTF2 D.potf2)
+
+
+newtype POTRF a = POTRF {getPOTRF :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+potrf = getPOTRF $ Class.switchReal (POTRF S.potrf) (POTRF D.potrf)
+
+
+newtype POTRI a = POTRI {getPOTRI :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potri :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+potri = getPOTRI $ Class.switchReal (POTRI S.potri) (POTRI D.potri)
+
+
+newtype POTRS a = POTRS {getPOTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+potrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+potrs = getPOTRS $ Class.switchReal (POTRS S.potrs) (POTRS D.potrs)
+
+
+newtype PPCON a = PPCON {getPPCON :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ppcon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ppcon = getPPCON $ Class.switchReal (PPCON S.ppcon) (PPCON D.ppcon)
+
+
+newtype PPEQU a = PPEQU {getPPEQU :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+ppequ :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+ppequ = getPPEQU $ Class.switchReal (PPEQU S.ppequ) (PPEQU D.ppequ)
+
+
+newtype PPRFS a = PPRFS {getPPRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pprfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pprfs = getPPRFS $ Class.switchReal (PPRFS S.pprfs) (PPRFS D.pprfs)
+
+
+newtype PPSV a = PPSV {getPPSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ppsv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ppsv = getPPSV $ Class.switchReal (PPSV S.ppsv) (PPSV D.ppsv)
+
+
+newtype PPSVX a = PPSVX {getPPSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CChar -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ppsvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CChar -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ppsvx = getPPSVX $ Class.switchReal (PPSVX S.ppsvx) (PPSVX D.ppsvx)
+
+
+newtype PPTRF a = PPTRF {getPPTRF :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+pptrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+pptrf = getPPTRF $ Class.switchReal (PPTRF S.pptrf) (PPTRF D.pptrf)
+
+
+newtype PPTRI a = PPTRI {getPPTRI :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+pptri :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+pptri = getPPTRI $ Class.switchReal (PPTRI S.pptri) (PPTRI D.pptri)
+
+
+newtype PPTRS a = PPTRS {getPPTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pptrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pptrs = getPPTRS $ Class.switchReal (PPTRS S.pptrs) (PPTRS D.pptrs)
+
+
+newtype PSTF2 a = PSTF2 {getPSTF2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+pstf2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+pstf2 = getPSTF2 $ Class.switchReal (PSTF2 S.pstf2) (PSTF2 D.pstf2)
+
+
+newtype PSTRF a = PSTRF {getPSTRF :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+pstrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+pstrf = getPSTRF $ Class.switchReal (PSTRF S.pstrf) (PSTRF D.pstrf)
+
+
+newtype PTCON a = PTCON {getPTCON :: Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+ptcon :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+ptcon = getPTCON $ Class.switchReal (PTCON S.ptcon) (PTCON D.ptcon)
+
+
+newtype PTEQR a = PTEQR {getPTEQR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+pteqr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+pteqr = getPTEQR $ Class.switchReal (PTEQR S.pteqr) (PTEQR D.pteqr)
+
+
+newtype PTRFS a = PTRFS {getPTRFS :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+ptrfs :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+ptrfs = getPTRFS $ Class.switchReal (PTRFS S.ptrfs) (PTRFS D.ptrfs)
+
+
+newtype PTSV a = PTSV {getPTSV :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+ptsv :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+ptsv = getPTSV $ Class.switchReal (PTSV S.ptsv) (PTSV D.ptsv)
+
+
+newtype PTSVX a = PTSVX {getPTSVX :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+ptsvx :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+ptsvx = getPTSVX $ Class.switchReal (PTSVX S.ptsvx) (PTSVX D.ptsvx)
+
+
+newtype PTTRF a = PTTRF {getPTTRF :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+pttrf :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+pttrf = getPTTRF $ Class.switchReal (PTTRF S.pttrf) (PTTRF D.pttrf)
+
+
+newtype PTTRS a = PTTRS {getPTTRS :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+pttrs :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+pttrs = getPTTRS $ Class.switchReal (PTTRS S.pttrs) (PTTRS D.pttrs)
+
+
+newtype PTTS2 a = PTTS2 {getPTTS2 :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+ptts2 :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+ptts2 = getPTTS2 $ Class.switchReal (PTTS2 S.ptts2) (PTTS2 D.ptts2)
+
+
+newtype RSCL a = RSCL {getRSCL :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+rscl :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+rscl = getRSCL $ Class.switchReal (RSCL S.rscl) (RSCL D.rscl)
+
+
+newtype SBEV a = SBEV {getSBEV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+sbev :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+sbev = getSBEV $ Class.switchReal (SBEV S.sbev) (SBEV D.sbev)
+
+
+newtype SBEVD a = SBEVD {getSBEVD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sbevd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+sbevd = getSBEVD $ Class.switchReal (SBEVD S.sbevd) (SBEVD D.sbevd)
+
+
+newtype SBEVX a = SBEVX {getSBEVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sbevx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+sbevx = getSBEVX $ Class.switchReal (SBEVX S.sbevx) (SBEVX D.sbevx)
+
+
+newtype SBGST a = SBGST {getSBGST :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+sbgst :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+sbgst = getSBGST $ Class.switchReal (SBGST S.sbgst) (SBGST D.sbgst)
+
+
+newtype SBGV a = SBGV {getSBGV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+sbgv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+sbgv = getSBGV $ Class.switchReal (SBGV S.sbgv) (SBGV D.sbgv)
+
+
+newtype SBGVD a = SBGVD {getSBGVD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sbgvd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+sbgvd = getSBGVD $ Class.switchReal (SBGVD S.sbgvd) (SBGVD D.sbgvd)
+
+
+newtype SBGVX a = SBGVX {getSBGVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sbgvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+sbgvx = getSBGVX $ Class.switchReal (SBGVX S.sbgvx) (SBGVX D.sbgvx)
+
+
+newtype SBTRD a = SBTRD {getSBTRD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+sbtrd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+sbtrd = getSBTRD $ Class.switchReal (SBTRD S.sbtrd) (SBTRD D.sbtrd)
+
+
+newtype SFRK a = SFRK {getSFRK :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> IO ()}
+
+sfrk :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> IO ()
+sfrk = getSFRK $ Class.switchReal (SFRK S.sfrk) (SFRK D.sfrk)
+
+
+newtype SPCON a = SPCON {getSPCON :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+spcon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+spcon = getSPCON $ Class.switchReal (SPCON S.spcon) (SPCON D.spcon)
+
+
+newtype SPEV a = SPEV {getSPEV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+spev :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+spev = getSPEV $ Class.switchReal (SPEV S.spev) (SPEV D.spev)
+
+
+newtype SPEVD a = SPEVD {getSPEVD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+spevd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+spevd = getSPEVD $ Class.switchReal (SPEVD S.spevd) (SPEVD D.spevd)
+
+
+newtype SPEVX a = SPEVX {getSPEVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+spevx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+spevx = getSPEVX $ Class.switchReal (SPEVX S.spevx) (SPEVX D.spevx)
+
+
+newtype SPGST a = SPGST {getSPGST :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+spgst :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+spgst = getSPGST $ Class.switchReal (SPGST S.spgst) (SPGST D.spgst)
+
+
+newtype SPGV a = SPGV {getSPGV :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+spgv :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+spgv = getSPGV $ Class.switchReal (SPGV S.spgv) (SPGV D.spgv)
+
+
+newtype SPGVD a = SPGVD {getSPGVD :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+spgvd :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+spgvd = getSPGVD $ Class.switchReal (SPGVD S.spgvd) (SPGVD D.spgvd)
+
+
+newtype SPGVX a = SPGVX {getSPGVX :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+spgvx :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+spgvx = getSPGVX $ Class.switchReal (SPGVX S.spgvx) (SPGVX D.spgvx)
+
+
+newtype SPRFS a = SPRFS {getSPRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sprfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sprfs = getSPRFS $ Class.switchReal (SPRFS S.sprfs) (SPRFS D.sprfs)
+
+
+newtype SPSV a = SPSV {getSPSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+spsv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+spsv = getSPSV $ Class.switchReal (SPSV S.spsv) (SPSV D.spsv)
+
+
+newtype SPSVX a = SPSVX {getSPSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+spsvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+spsvx = getSPSVX $ Class.switchReal (SPSVX S.spsvx) (SPSVX D.spsvx)
+
+
+newtype SPTRD a = SPTRD {getSPTRD :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+sptrd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+sptrd = getSPTRD $ Class.switchReal (SPTRD S.sptrd) (SPTRD D.sptrd)
+
+
+newtype SPTRF a = SPTRF {getSPTRF :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sptrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sptrf = getSPTRF $ Class.switchReal (SPTRF S.sptrf) (SPTRF D.sptrf)
+
+
+newtype SPTRI a = SPTRI {getSPTRI :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+sptri :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+sptri = getSPTRI $ Class.switchReal (SPTRI S.sptri) (SPTRI D.sptri)
+
+
+newtype SPTRS a = SPTRS {getSPTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sptrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sptrs = getSPTRS $ Class.switchReal (SPTRS S.sptrs) (SPTRS D.sptrs)
+
+
+newtype STEBZ a = STEBZ {getSTEBZ :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stebz :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+stebz = getSTEBZ $ Class.switchReal (STEBZ S.stebz) (STEBZ D.stebz)
+
+
+newtype STEDC a = STEDC {getSTEDC :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stedc :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+stedc = getSTEDC $ Class.switchReal (STEDC S.stedc) (STEDC D.stedc)
+
+
+newtype STEGR a = STEGR {getSTEGR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stegr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+stegr = getSTEGR $ Class.switchReal (STEGR S.stegr) (STEGR D.stegr)
+
+
+newtype STEIN a = STEIN {getSTEIN :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stein :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+stein = getSTEIN $ Class.switchReal (STEIN S.stein) (STEIN D.stein)
+
+
+newtype STEMR a = STEMR {getSTEMR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stemr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr Bool -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+stemr = getSTEMR $ Class.switchReal (STEMR S.stemr) (STEMR D.stemr)
+
+
+newtype STEQR a = STEQR {getSTEQR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+steqr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+steqr = getSTEQR $ Class.switchReal (STEQR S.steqr) (STEQR D.steqr)
+
+
+newtype STERF a = STERF {getSTERF :: Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+sterf :: Class.Real a => Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+sterf = getSTERF $ Class.switchReal (STERF S.sterf) (STERF D.sterf)
+
+
+newtype STEV a = STEV {getSTEV :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+stev :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+stev = getSTEV $ Class.switchReal (STEV S.stev) (STEV D.stev)
+
+
+newtype STEVD a = STEVD {getSTEVD :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stevd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+stevd = getSTEVD $ Class.switchReal (STEVD S.stevd) (STEVD D.stevd)
+
+
+newtype STEVR a = STEVR {getSTEVR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stevr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+stevr = getSTEVR $ Class.switchReal (STEVR S.stevr) (STEVR D.stevr)
+
+
+newtype STEVX a = STEVX {getSTEVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+stevx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+stevx = getSTEVX $ Class.switchReal (STEVX S.stevx) (STEVX D.stevx)
+
+
+newtype SYCON a = SYCON {getSYCON :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sycon :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sycon = getSYCON $ Class.switchReal (SYCON S.sycon) (SYCON D.sycon)
+
+
+newtype SYCONV a = SYCONV {getSYCONV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+syconv :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+syconv = getSYCONV $ Class.switchReal (SYCONV S.syconv) (SYCONV D.syconv)
+
+
+newtype SYEQUB a = SYEQUB {getSYEQUB :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+syequb :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+syequb = getSYEQUB $ Class.switchReal (SYEQUB S.syequb) (SYEQUB D.syequb)
+
+
+newtype SYEV a = SYEV {getSYEV :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+syev :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+syev = getSYEV $ Class.switchReal (SYEV S.syev) (SYEV D.syev)
+
+
+newtype SYEVD a = SYEVD {getSYEVD :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+syevd :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+syevd = getSYEVD $ Class.switchReal (SYEVD S.syevd) (SYEVD D.syevd)
+
+
+newtype SYEVR a = SYEVR {getSYEVR :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+syevr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+syevr = getSYEVR $ Class.switchReal (SYEVR S.syevr) (SYEVR D.syevr)
+
+
+newtype SYEVX a = SYEVX {getSYEVX :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+syevx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+syevx = getSYEVX $ Class.switchReal (SYEVX S.syevx) (SYEVX D.syevx)
+
+
+newtype SYGS2 a = SYGS2 {getSYGS2 :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sygs2 :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sygs2 = getSYGS2 $ Class.switchReal (SYGS2 S.sygs2) (SYGS2 D.sygs2)
+
+
+newtype SYGST a = SYGST {getSYGST :: Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sygst :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sygst = getSYGST $ Class.switchReal (SYGST S.sygst) (SYGST D.sygst)
+
+
+newtype SYGV a = SYGV {getSYGV :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sygv :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sygv = getSYGV $ Class.switchReal (SYGV S.sygv) (SYGV D.sygv)
+
+
+newtype SYGVD a = SYGVD {getSYGVD :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sygvd :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+sygvd = getSYGVD $ Class.switchReal (SYGVD S.sygvd) (SYGVD D.sygvd)
+
+
+newtype SYGVX a = SYGVX {getSYGVX :: Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sygvx :: Class.Real a => Ptr CInt -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+sygvx = getSYGVX $ Class.switchReal (SYGVX S.sygvx) (SYGVX D.sygvx)
+
+
+newtype SYRFS a = SYRFS {getSYRFS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+syrfs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+syrfs = getSYRFS $ Class.switchReal (SYRFS S.syrfs) (SYRFS D.syrfs)
+
+
+newtype SYSV a = SYSV {getSYSV :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sysv :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sysv = getSYSV $ Class.switchReal (SYSV S.sysv) (SYSV D.sysv)
+
+
+newtype SYSVX a = SYSVX {getSYSVX :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sysvx :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+sysvx = getSYSVX $ Class.switchReal (SYSVX S.sysvx) (SYSVX D.sysvx)
+
+
+newtype SYSWAPR a = SYSWAPR {getSYSWAPR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+syswapr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+syswapr = getSYSWAPR $ Class.switchReal (SYSWAPR S.syswapr) (SYSWAPR D.syswapr)
+
+
+newtype SYTD2 a = SYTD2 {getSYTD2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+sytd2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+sytd2 = getSYTD2 $ Class.switchReal (SYTD2 S.sytd2) (SYTD2 D.sytd2)
+
+
+newtype SYTF2 a = SYTF2 {getSYTF2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytf2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+sytf2 = getSYTF2 $ Class.switchReal (SYTF2 S.sytf2) (SYTF2 D.sytf2)
+
+
+newtype SYTRD a = SYTRD {getSYTRD :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytrd :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sytrd = getSYTRD $ Class.switchReal (SYTRD S.sytrd) (SYTRD D.sytrd)
+
+
+newtype SYTRF a = SYTRF {getSYTRF :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytrf :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sytrf = getSYTRF $ Class.switchReal (SYTRF S.sytrf) (SYTRF D.sytrf)
+
+
+newtype SYTRI a = SYTRI {getSYTRI :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+sytri :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+sytri = getSYTRI $ Class.switchReal (SYTRI S.sytri) (SYTRI D.sytri)
+
+
+newtype SYTRI2 a = SYTRI2 {getSYTRI2 :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytri2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sytri2 = getSYTRI2 $ Class.switchReal (SYTRI2 S.sytri2) (SYTRI2 D.sytri2)
+
+
+newtype SYTRI2X a = SYTRI2X {getSYTRI2X :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytri2x :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sytri2x = getSYTRI2X $ Class.switchReal (SYTRI2X S.sytri2x) (SYTRI2X D.sytri2x)
+
+
+newtype SYTRS a = SYTRS {getSYTRS :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+sytrs :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+sytrs = getSYTRS $ Class.switchReal (SYTRS S.sytrs) (SYTRS D.sytrs)
+
+
+newtype SYTRS2 a = SYTRS2 {getSYTRS2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+sytrs2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+sytrs2 = getSYTRS2 $ Class.switchReal (SYTRS2 S.sytrs2) (SYTRS2 D.sytrs2)
+
+
+newtype TBCON a = TBCON {getTBCON :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tbcon :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tbcon = getTBCON $ Class.switchReal (TBCON S.tbcon) (TBCON D.tbcon)
+
+
+newtype TBRFS a = TBRFS {getTBRFS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tbrfs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tbrfs = getTBRFS $ Class.switchReal (TBRFS S.tbrfs) (TBRFS D.tbrfs)
+
+
+newtype TBTRS a = TBTRS {getTBTRS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tbtrs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tbtrs = getTBTRS $ Class.switchReal (TBTRS S.tbtrs) (TBTRS D.tbtrs)
+
+
+newtype TFSM a = TFSM {getTFSM :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+tfsm :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+tfsm = getTFSM $ Class.switchReal (TFSM S.tfsm) (TFSM D.tfsm)
+
+
+newtype TFTRI a = TFTRI {getTFTRI :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+tftri :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+tftri = getTFTRI $ Class.switchReal (TFTRI S.tftri) (TFTRI D.tftri)
+
+
+newtype TFTTP a = TFTTP {getTFTTP :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+tfttp :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+tfttp = getTFTTP $ Class.switchReal (TFTTP S.tfttp) (TFTTP D.tfttp)
+
+
+newtype TFTTR a = TFTTR {getTFTTR :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tfttr :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tfttr = getTFTTR $ Class.switchReal (TFTTR S.tfttr) (TFTTR D.tfttr)
+
+
+newtype TGEVC a = TGEVC {getTGEVC :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+tgevc :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+tgevc = getTGEVC $ Class.switchReal (TGEVC S.tgevc) (TGEVC D.tgevc)
+
+
+newtype TGEX2 a = TGEX2 {getTGEX2 :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgex2 :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tgex2 = getTGEX2 $ Class.switchReal (TGEX2 S.tgex2) (TGEX2 D.tgex2)
+
+
+newtype TGEXC a = TGEXC {getTGEXC :: Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgexc :: Class.Real a => Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tgexc = getTGEXC $ Class.switchReal (TGEXC S.tgexc) (TGEXC D.tgexc)
+
+
+newtype TGSEN a = TGSEN {getTGSEN :: Ptr CInt -> Ptr Bool -> Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgsen :: Class.Real a => Ptr CInt -> Ptr Bool -> Ptr Bool -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+tgsen = getTGSEN $ Class.switchReal (TGSEN S.tgsen) (TGSEN D.tgsen)
+
+
+newtype TGSJA a = TGSJA {getTGSJA :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgsja :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tgsja = getTGSJA $ Class.switchReal (TGSJA S.tgsja) (TGSJA D.tgsja)
+
+
+newtype TGSNA a = TGSNA {getTGSNA :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgsna :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+tgsna = getTGSNA $ Class.switchReal (TGSNA S.tgsna) (TGSNA D.tgsna)
+
+
+newtype TGSY2 a = TGSY2 {getTGSY2 :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgsy2 :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+tgsy2 = getTGSY2 $ Class.switchReal (TGSY2 S.tgsy2) (TGSY2 D.tgsy2)
+
+
+newtype TGSYL a = TGSYL {getTGSYL :: Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tgsyl :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+tgsyl = getTGSYL $ Class.switchReal (TGSYL S.tgsyl) (TGSYL D.tgsyl)
+
+
+newtype TPCON a = TPCON {getTPCON :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tpcon :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tpcon = getTPCON $ Class.switchReal (TPCON S.tpcon) (TPCON D.tpcon)
+
+
+newtype TPRFS a = TPRFS {getTPRFS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tprfs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tprfs = getTPRFS $ Class.switchReal (TPRFS S.tprfs) (TPRFS D.tprfs)
+
+
+newtype TPTRI a = TPTRI {getTPTRI :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+tptri :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+tptri = getTPTRI $ Class.switchReal (TPTRI S.tptri) (TPTRI D.tptri)
+
+
+newtype TPTRS a = TPTRS {getTPTRS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tptrs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tptrs = getTPTRS $ Class.switchReal (TPTRS S.tptrs) (TPTRS D.tptrs)
+
+
+newtype TPTTF a = TPTTF {getTPTTF :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()}
+
+tpttf :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> IO ()
+tpttf = getTPTTF $ Class.switchReal (TPTTF S.tpttf) (TPTTF D.tpttf)
+
+
+newtype TPTTR a = TPTTR {getTPTTR :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tpttr :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tpttr = getTPTTR $ Class.switchReal (TPTTR S.tpttr) (TPTTR D.tpttr)
+
+
+newtype TRCON a = TRCON {getTRCON :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trcon :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+trcon = getTRCON $ Class.switchReal (TRCON S.trcon) (TRCON D.trcon)
+
+
+newtype TREVC a = TREVC {getTREVC :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+trevc :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+trevc = getTREVC $ Class.switchReal (TREVC S.trevc) (TREVC D.trevc)
+
+
+newtype TREXC a = TREXC {getTREXC :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+trexc :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+trexc = getTREXC $ Class.switchReal (TREXC S.trexc) (TREXC D.trexc)
+
+
+newtype TRRFS a = TRRFS {getTRRFS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trrfs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+trrfs = getTRRFS $ Class.switchReal (TRRFS S.trrfs) (TRRFS D.trrfs)
+
+
+newtype TRSEN a = TRSEN {getTRSEN :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trsen :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+trsen = getTRSEN $ Class.switchReal (TRSEN S.trsen) (TRSEN D.trsen)
+
+
+newtype TRSNA a = TRSNA {getTRSNA :: Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trsna :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr Bool -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
+trsna = getTRSNA $ Class.switchReal (TRSNA S.trsna) (TRSNA D.trsna)
+
+
+newtype TRSYL a = TRSYL {getTRSYL :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+trsyl :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+trsyl = getTRSYL $ Class.switchReal (TRSYL S.trsyl) (TRSYL D.trsyl)
+
+
+newtype TRTI2 a = TRTI2 {getTRTI2 :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trti2 :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+trti2 = getTRTI2 $ Class.switchReal (TRTI2 S.trti2) (TRTI2 D.trti2)
+
+
+newtype TRTRI a = TRTRI {getTRTRI :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trtri :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+trtri = getTRTRI $ Class.switchReal (TRTRI S.trtri) (TRTRI D.trtri)
+
+
+newtype TRTRS a = TRTRS {getTRTRS :: Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+trtrs :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+trtrs = getTRTRS $ Class.switchReal (TRTRS S.trtrs) (TRTRS D.trtrs)
+
+
+newtype TRTTF a = TRTTF {getTRTTF :: Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+trttf :: Class.Real a => Ptr CChar -> Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+trttf = getTRTTF $ Class.switchReal (TRTTF S.trttf) (TRTTF D.trttf)
+
+
+newtype TRTTP a = TRTTP {getTRTTP :: Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()}
+
+trttp :: Class.Real a => Ptr CChar -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO ()
+trttp = getTRTTP $ Class.switchReal (TRTTP S.trttp) (TRTTP D.trttp)
+
+
+newtype TZRZF a = TZRZF {getTZRZF :: Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()}
+
+tzrzf :: Class.Real a => Ptr CInt -> Ptr CInt -> Ptr a -> Ptr CInt -> Ptr a -> Ptr a -> Ptr CInt -> Ptr CInt -> IO ()
+tzrzf = getTZRZF $ Class.switchReal (TZRZF S.tzrzf) (TZRZF D.tzrzf)
