-- Do not edit! Automatically generated by create-lapack-ffi.
module Numeric.LAPACK.CArray.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,
   sbev,
   sbevd,
   sbevx,
   sbgst,
   sbgv,
   sbgvd,
   sbgvx,
   sbtrd,
   syev,
   syevd,
   syevr,
   syevx,
   sygs2,
   sygst,
   sygv,
   sygvd,
   sygvx,
   sfrk,
   hgeqz,
   spev,
   spevd,
   spevx,
   spgst,
   spgv,
   spgvd,
   spgvx,
   sptrd,
   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,
   orbdb,
   orcsd,
   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,
   spcon,
   sprfs,
   spsv,
   spsvx,
   sptrf,
   sptri,
   sptrs,
   stebz,
   stedc,
   stegr,
   stein,
   stemr,
   steqr,
   sterf,
   stev,
   stevd,
   stevr,
   stevx,
   sycon,
   syconv,
   syequb,
   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,
   org2l,
   org2r,
   orgbr,
   orghr,
   orgl2,
   orglq,
   orgql,
   orgqr,
   orgr2,
   orgrq,
   orgtr,
   orm2l,
   orm2r,
   ormbr,
   ormhr,
   orml2,
   ormlq,
   ormql,
   ormqr,
   ormr2,
   ormr3,
   ormrq,
   ormrz,
   ormtr,
   opgtr,
   opmtr,
   ) where

import qualified Numeric.LAPACK.CArray.Double as D
import qualified Numeric.LAPACK.CArray.Float as S
import qualified Numeric.Netlib.Class as Class

import Data.Array.IOCArray (IOCArray)
import Data.Array.CArray (CArray)

import Foreign.Ptr (Ptr, FunPtr)
import Foreign.C.Types (CInt)



newtype BBCSD a = BBCSD {getBBCSD :: Char -> Char -> Char -> Char -> Char -> Int -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, CArray Int a, CArray Int a, CArray Int a, CArray Int a, CArray Int a, Int)}

bbcsd :: Class.Real a => Char -> Char -> Char -> Char -> Char -> Int -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, CArray Int a, CArray Int a, CArray Int a, CArray Int a, CArray Int a, Int)
bbcsd = getBBCSD $ Class.switchReal (BBCSD S.bbcsd) (BBCSD D.bbcsd)


newtype BDSDC a = BDSDC {getBDSDC :: Char -> Char -> IOCArray Int a -> IOCArray Int a -> Int -> Int -> Int -> Int -> Int -> IO (CArray (Int,Int) a, CArray (Int,Int) a, CArray Int a, CArray Int CInt, Int)}

bdsdc :: Class.Real a => Char -> Char -> IOCArray Int a -> IOCArray Int a -> Int -> Int -> Int -> Int -> Int -> IO (CArray (Int,Int) a, CArray (Int,Int) a, CArray Int a, CArray Int CInt, Int)
bdsdc = getBDSDC $ Class.switchReal (BDSDC S.bdsdc) (BDSDC D.bdsdc)


newtype BDSQR a = BDSQR {getBDSQR :: Char -> Int -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (Int)}

bdsqr :: Class.Real a => Char -> Int -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (Int)
bdsqr = getBDSQR $ Class.switchReal (BDSQR S.bdsqr) (BDSQR D.bdsqr)


newtype DISNA a = DISNA {getDISNA :: Char -> Int -> Int -> CArray Int a -> Int -> IO (CArray Int a, Int)}

disna :: Class.Real a => Char -> Int -> Int -> CArray Int a -> Int -> IO (CArray Int a, Int)
disna = getDISNA $ Class.switchReal (DISNA S.disna) (DISNA D.disna)


newtype GBBRD a = GBBRD {getGBBRD :: Char -> Int -> Int -> Int -> IOCArray (Int,Int) a -> Int -> Int -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)}

gbbrd :: Class.Real a => Char -> Int -> Int -> Int -> IOCArray (Int,Int) a -> Int -> Int -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)
gbbrd = getGBBRD $ Class.switchReal (GBBRD S.gbbrd) (GBBRD D.gbbrd)


newtype GBCON a = GBCON {getGBCON :: Char -> Int -> Int -> CArray (Int,Int) a -> CArray Int CInt -> a -> IO (a, Int)}

gbcon :: Class.Real a => Char -> Int -> Int -> CArray (Int,Int) a -> CArray Int CInt -> a -> IO (a, Int)
gbcon = getGBCON $ Class.switchReal (GBCON S.gbcon) (GBCON D.gbcon)


newtype GBEQU a = GBEQU {getGBEQU :: Int -> Int -> Int -> CArray (Int,Int) a -> IO (CArray Int a, CArray Int a, a, a, a, Int)}

gbequ :: Class.Real a => Int -> Int -> Int -> CArray (Int,Int) a -> IO (CArray Int a, CArray Int a, a, a, a, Int)
gbequ = getGBEQU $ Class.switchReal (GBEQU S.gbequ) (GBEQU D.gbequ)


newtype GBEQUB a = GBEQUB {getGBEQUB :: Int -> Int -> Int -> CArray (Int,Int) a -> IO (CArray Int a, CArray Int a, a, a, a, Int)}

gbequb :: Class.Real a => Int -> Int -> Int -> CArray (Int,Int) a -> IO (CArray Int a, CArray Int a, a, a, a, Int)
gbequb = getGBEQUB $ Class.switchReal (GBEQUB S.gbequb) (GBEQUB D.gbequb)


newtype GBRFS a = GBRFS {getGBRFS :: Char -> Int -> Int -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray Int CInt -> CArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, Int)}

gbrfs :: Class.Real a => Char -> Int -> Int -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray Int CInt -> CArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, Int)
gbrfs = getGBRFS $ Class.switchReal (GBRFS S.gbrfs) (GBRFS D.gbrfs)


newtype GBSV a = GBSV {getGBSV :: Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)}

gbsv :: Class.Real a => Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)
gbsv = getGBSV $ Class.switchReal (GBSV S.gbsv) (GBSV D.gbsv)


newtype GBSVX a = GBSVX {getGBSVX :: Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray Int CInt -> Char -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> Int -> IO (Char, CArray (Int,Int) a, a, CArray Int a, CArray Int a, Int)}

gbsvx :: Class.Real a => Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray Int CInt -> Char -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> Int -> IO (Char, CArray (Int,Int) a, a, CArray Int a, CArray Int a, Int)
gbsvx = getGBSVX $ Class.switchReal (GBSVX S.gbsvx) (GBSVX D.gbsvx)


newtype GBTF2 a = GBTF2 {getGBTF2 :: Int -> Int -> Int -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)}

gbtf2 :: Class.Real a => Int -> Int -> Int -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)
gbtf2 = getGBTF2 $ Class.switchReal (GBTF2 S.gbtf2) (GBTF2 D.gbtf2)


newtype GBTRF a = GBTRF {getGBTRF :: Int -> Int -> Int -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)}

gbtrf :: Class.Real a => Int -> Int -> Int -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)
gbtrf = getGBTRF $ Class.switchReal (GBTRF S.gbtrf) (GBTRF D.gbtrf)


newtype GBTRS a = GBTRS {getGBTRS :: Char -> Int -> Int -> CArray (Int,Int) a -> CArray Int CInt -> IOCArray (Int,Int) a -> IO (Int)}

gbtrs :: Class.Real a => Char -> Int -> Int -> CArray (Int,Int) a -> CArray Int CInt -> IOCArray (Int,Int) a -> IO (Int)
gbtrs = getGBTRS $ Class.switchReal (GBTRS S.gbtrs) (GBTRS D.gbtrs)


newtype GEBAK a = GEBAK {getGEBAK :: Char -> Char -> Int -> Int -> CArray Int a -> IOCArray (Int,Int) a -> IO (Int)}

gebak :: Class.Real a => Char -> Char -> Int -> Int -> CArray Int a -> IOCArray (Int,Int) a -> IO (Int)
gebak = getGEBAK $ Class.switchReal (GEBAK S.gebak) (GEBAK D.gebak)


newtype GEBAL a = GEBAL {getGEBAL :: Char -> IOCArray (Int,Int) a -> IO (Int, Int, CArray Int a, Int)}

gebal :: Class.Real a => Char -> IOCArray (Int,Int) a -> IO (Int, Int, CArray Int a, Int)
gebal = getGEBAL $ Class.switchReal (GEBAL S.gebal) (GEBAL D.gebal)


newtype GEBD2 a = GEBD2 {getGEBD2 :: Int -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, CArray Int a, CArray Int a, Int)}

gebd2 :: Class.Real a => Int -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, CArray Int a, CArray Int a, Int)
gebd2 = getGEBD2 $ Class.switchReal (GEBD2 S.gebd2) (GEBD2 D.gebd2)


newtype GEBRD a = GEBRD {getGEBRD :: Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, CArray Int a, Int)}

gebrd :: Class.Real a => Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, CArray Int a, Int)
gebrd = getGEBRD $ Class.switchReal (GEBRD S.gebrd) (GEBRD D.gebrd)


newtype GECON a = GECON {getGECON :: Char -> CArray (Int,Int) a -> a -> IO (a, Int)}

gecon :: Class.Real a => Char -> CArray (Int,Int) a -> a -> IO (a, Int)
gecon = getGECON $ Class.switchReal (GECON S.gecon) (GECON D.gecon)


newtype GEEQU a = GEEQU {getGEEQU :: Int -> CArray (Int,Int) a -> IO (CArray Int a, CArray Int a, a, a, a, Int)}

geequ :: Class.Real a => Int -> CArray (Int,Int) a -> IO (CArray Int a, CArray Int a, a, a, a, Int)
geequ = getGEEQU $ Class.switchReal (GEEQU S.geequ) (GEEQU D.geequ)


newtype GEEQUB a = GEEQUB {getGEEQUB :: Int -> CArray (Int,Int) a -> IO (CArray Int a, CArray Int a, a, a, a, Int)}

geequb :: Class.Real a => Int -> CArray (Int,Int) a -> IO (CArray Int a, CArray Int a, a, a, a, Int)
geequb = getGEEQUB $ Class.switchReal (GEEQUB S.geequb) (GEEQUB D.geequb)


newtype GEES a = GEES {getGEES :: Char -> Char -> FunPtr (Ptr a -> Ptr a -> IO Bool) -> IOCArray (Int,Int) a -> Int -> Int -> IO (Int, CArray Int a, CArray Int a, CArray (Int,Int) a, Int)}

gees :: Class.Real a => Char -> Char -> FunPtr (Ptr a -> Ptr a -> IO Bool) -> IOCArray (Int,Int) a -> Int -> Int -> IO (Int, CArray Int a, CArray Int a, CArray (Int,Int) a, Int)
gees = getGEES $ Class.switchReal (GEES S.gees) (GEES D.gees)


newtype GEESX a = GEESX {getGEESX :: Char -> Char -> FunPtr (Ptr a -> Ptr a -> IO Bool) -> Char -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray Int a, CArray (Int,Int) a, a, a, Int)}

geesx :: Class.Real a => Char -> Char -> FunPtr (Ptr a -> Ptr a -> IO Bool) -> Char -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray Int a, CArray (Int,Int) a, a, a, Int)
geesx = getGEESX $ Class.switchReal (GEESX S.geesx) (GEESX D.geesx)


newtype GEEV a = GEEV {getGEEV :: Char -> Char -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)}

geev :: Class.Real a => Char -> Char -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)
geev = getGEEV $ Class.switchReal (GEEV S.geev) (GEEV D.geev)


newtype GEEVX a = GEEVX {getGEEVX :: Char -> Char -> Char -> Char -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int, Int, CArray Int a, a, CArray Int a, CArray Int a, Int)}

geevx :: Class.Real a => Char -> Char -> Char -> Char -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int, Int, CArray Int a, a, CArray Int a, CArray Int a, Int)
geevx = getGEEVX $ Class.switchReal (GEEVX S.geevx) (GEEVX D.geevx)


newtype GEHD2 a = GEHD2 {getGEHD2 :: Int -> Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)}

gehd2 :: Class.Real a => Int -> Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)
gehd2 = getGEHD2 $ Class.switchReal (GEHD2 S.gehd2) (GEHD2 D.gehd2)


newtype GEHRD a = GEHRD {getGEHRD :: Int -> Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)}

gehrd :: Class.Real a => Int -> Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)
gehrd = getGEHRD $ Class.switchReal (GEHRD S.gehrd) (GEHRD D.gehrd)


newtype GEJSV a = GEJSV {getGEJSV :: Char -> Char -> Char -> Char -> Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)}

gejsv :: Class.Real a => Char -> Char -> Char -> Char -> Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)
gejsv = getGEJSV $ Class.switchReal (GEJSV S.gejsv) (GEJSV D.gejsv)


newtype GELQ2 a = GELQ2 {getGELQ2 :: Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)}

gelq2 :: Class.Real a => Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)
gelq2 = getGELQ2 $ Class.switchReal (GELQ2 S.gelq2) (GELQ2 D.gelq2)


newtype GELQF a = GELQF {getGELQF :: Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)}

gelqf :: Class.Real a => Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)
gelqf = getGELQF $ Class.switchReal (GELQF S.gelqf) (GELQF D.gelqf)


newtype GELS a = GELS {getGELS :: Char -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (Int)}

gels :: Class.Real a => Char -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (Int)
gels = getGELS $ Class.switchReal (GELS S.gels) (GELS D.gels)


newtype GELSD a = GELSD {getGELSD :: Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> a -> Int -> Int -> IO (CArray Int a, Int, Int)}

gelsd :: Class.Real a => Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> a -> Int -> Int -> IO (CArray Int a, Int, Int)
gelsd = getGELSD $ Class.switchReal (GELSD S.gelsd) (GELSD D.gelsd)


newtype GELSS a = GELSS {getGELSS :: Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> a -> Int -> IO (CArray Int a, Int, Int)}

gelss :: Class.Real a => Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> a -> Int -> IO (CArray Int a, Int, Int)
gelss = getGELSS $ Class.switchReal (GELSS S.gelss) (GELSS D.gelss)


newtype GELSY a = GELSY {getGELSY :: Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray Int CInt -> a -> Int -> IO (Int, Int)}

gelsy :: Class.Real a => Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray Int CInt -> a -> Int -> IO (Int, Int)
gelsy = getGELSY $ Class.switchReal (GELSY S.gelsy) (GELSY D.gelsy)


newtype GEQL2 a = GEQL2 {getGEQL2 :: Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)}

geql2 :: Class.Real a => Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)
geql2 = getGEQL2 $ Class.switchReal (GEQL2 S.geql2) (GEQL2 D.geql2)


newtype GEQLF a = GEQLF {getGEQLF :: Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)}

geqlf :: Class.Real a => Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)
geqlf = getGEQLF $ Class.switchReal (GEQLF S.geqlf) (GEQLF D.geqlf)


newtype GEQP3 a = GEQP3 {getGEQP3 :: Int -> IOCArray (Int,Int) a -> IOCArray Int CInt -> Int -> IO (CArray Int a, Int)}

geqp3 :: Class.Real a => Int -> IOCArray (Int,Int) a -> IOCArray Int CInt -> Int -> IO (CArray Int a, Int)
geqp3 = getGEQP3 $ Class.switchReal (GEQP3 S.geqp3) (GEQP3 D.geqp3)


newtype GEQR2 a = GEQR2 {getGEQR2 :: Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)}

geqr2 :: Class.Real a => Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)
geqr2 = getGEQR2 $ Class.switchReal (GEQR2 S.geqr2) (GEQR2 D.geqr2)


newtype GEQR2P a = GEQR2P {getGEQR2P :: Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)}

geqr2p :: Class.Real a => Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)
geqr2p = getGEQR2P $ Class.switchReal (GEQR2P S.geqr2p) (GEQR2P D.geqr2p)


newtype GEQRF a = GEQRF {getGEQRF :: Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)}

geqrf :: Class.Real a => Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)
geqrf = getGEQRF $ Class.switchReal (GEQRF S.geqrf) (GEQRF D.geqrf)


newtype GEQRFP a = GEQRFP {getGEQRFP :: Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)}

geqrfp :: Class.Real a => Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)
geqrfp = getGEQRFP $ Class.switchReal (GEQRFP S.geqrfp) (GEQRFP D.geqrfp)


newtype GERFS a = GERFS {getGERFS :: Char -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray Int CInt -> CArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, Int)}

gerfs :: Class.Real a => Char -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray Int CInt -> CArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, Int)
gerfs = getGERFS $ Class.switchReal (GERFS S.gerfs) (GERFS D.gerfs)


newtype GERQ2 a = GERQ2 {getGERQ2 :: Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)}

gerq2 :: Class.Real a => Int -> IOCArray (Int,Int) a -> IO (CArray Int a, Int)
gerq2 = getGERQ2 $ Class.switchReal (GERQ2 S.gerq2) (GERQ2 D.gerq2)


newtype GERQF a = GERQF {getGERQF :: Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)}

gerqf :: Class.Real a => Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)
gerqf = getGERQF $ Class.switchReal (GERQF S.gerqf) (GERQF D.gerqf)


newtype GESC2 a = GESC2 {getGESC2 :: CArray (Int,Int) a -> IOCArray Int a -> CArray Int CInt -> CArray Int CInt -> IO (a)}

gesc2 :: Class.Real a => CArray (Int,Int) a -> IOCArray Int a -> CArray Int CInt -> CArray Int CInt -> IO (a)
gesc2 = getGESC2 $ Class.switchReal (GESC2 S.gesc2) (GESC2 D.gesc2)


newtype GESDD a = GESDD {getGESDD :: Char -> Int -> IOCArray (Int,Int) a -> Int -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)}

gesdd :: Class.Real a => Char -> Int -> IOCArray (Int,Int) a -> Int -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)
gesdd = getGESDD $ Class.switchReal (GESDD S.gesdd) (GESDD D.gesdd)


newtype GESV a = GESV {getGESV :: IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)}

gesv :: Class.Real a => IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)
gesv = getGESV $ Class.switchReal (GESV S.gesv) (GESV D.gesv)


newtype GESVD a = GESVD {getGESVD :: Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)}

gesvd :: Class.Real a => Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)
gesvd = getGESVD $ Class.switchReal (GESVD S.gesvd) (GESVD D.gesvd)


newtype GESVJ a = GESVJ {getGESVJ :: Char -> Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> IOCArray (Int,Int) a -> IOCArray Int a -> IO (CArray Int a, Int)}

gesvj :: Class.Real a => Char -> Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> IOCArray (Int,Int) a -> IOCArray Int a -> IO (CArray Int a, Int)
gesvj = getGESVJ $ Class.switchReal (GESVJ S.gesvj) (GESVJ D.gesvj)


newtype GESVX a = GESVX {getGESVX :: Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray Int CInt -> Char -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> Int -> IO (Char, CArray (Int,Int) a, a, CArray Int a, CArray Int a, Int)}

gesvx :: Class.Real a => Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray Int CInt -> Char -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> Int -> IO (Char, CArray (Int,Int) a, a, CArray Int a, CArray Int a, Int)
gesvx = getGESVX $ Class.switchReal (GESVX S.gesvx) (GESVX D.gesvx)


newtype GETC2 a = GETC2 {getGETC2 :: IOCArray (Int,Int) a -> IO (CArray Int CInt, CArray Int CInt, Int)}

getc2 :: Class.Real a => IOCArray (Int,Int) a -> IO (CArray Int CInt, CArray Int CInt, Int)
getc2 = getGETC2 $ Class.switchReal (GETC2 S.getc2) (GETC2 D.getc2)


newtype GETF2 a = GETF2 {getGETF2 :: Int -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)}

getf2 :: Class.Real a => Int -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)
getf2 = getGETF2 $ Class.switchReal (GETF2 S.getf2) (GETF2 D.getf2)


newtype GETRF a = GETRF {getGETRF :: Int -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)}

getrf :: Class.Real a => Int -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)
getrf = getGETRF $ Class.switchReal (GETRF S.getrf) (GETRF D.getrf)


newtype GETRI a = GETRI {getGETRI :: IOCArray (Int,Int) a -> CArray Int CInt -> Int -> IO (Int)}

getri :: Class.Real a => IOCArray (Int,Int) a -> CArray Int CInt -> Int -> IO (Int)
getri = getGETRI $ Class.switchReal (GETRI S.getri) (GETRI D.getri)


newtype GETRS a = GETRS {getGETRS :: Char -> CArray (Int,Int) a -> CArray Int CInt -> IOCArray (Int,Int) a -> IO (Int)}

getrs :: Class.Real a => Char -> CArray (Int,Int) a -> CArray Int CInt -> IOCArray (Int,Int) a -> IO (Int)
getrs = getGETRS $ Class.switchReal (GETRS S.getrs) (GETRS D.getrs)


newtype GGBAK a = GGBAK {getGGBAK :: Char -> Char -> Int -> Int -> CArray Int a -> CArray Int a -> IOCArray (Int,Int) a -> IO (Int)}

ggbak :: Class.Real a => Char -> Char -> Int -> Int -> CArray Int a -> CArray Int a -> IOCArray (Int,Int) a -> IO (Int)
ggbak = getGGBAK $ Class.switchReal (GGBAK S.ggbak) (GGBAK D.ggbak)


newtype GGBAL a = GGBAL {getGGBAL :: Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (Int, Int, CArray Int a, CArray Int a, Int)}

ggbal :: Class.Real a => Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (Int, Int, CArray Int a, CArray Int a, Int)
ggbal = getGGBAL $ Class.switchReal (GGBAL S.ggbal) (GGBAL D.ggbal)


newtype GGES a = GGES {getGGES :: Char -> Char -> Char -> FunPtr (Ptr a -> Ptr a -> Ptr a -> IO Bool) -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)}

gges :: Class.Real a => Char -> Char -> Char -> FunPtr (Ptr a -> Ptr a -> Ptr a -> IO Bool) -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)
gges = getGGES $ Class.switchReal (GGES S.gges) (GGES D.gges)


newtype GGESX a = GGESX {getGGESX :: Char -> Char -> Char -> FunPtr (Ptr a -> Ptr a -> Ptr a -> IO Bool) -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, CArray Int a, CArray Int a, Int)}

ggesx :: Class.Real a => Char -> Char -> Char -> FunPtr (Ptr a -> Ptr a -> Ptr a -> IO Bool) -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, CArray Int a, CArray Int a, Int)
ggesx = getGGESX $ Class.switchReal (GGESX S.ggesx) (GGESX D.ggesx)


newtype GGEV a = GGEV {getGGEV :: Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)}

ggev :: Class.Real a => Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)
ggev = getGGEV $ Class.switchReal (GGEV S.ggev) (GGEV D.ggev)


newtype GGEVX a = GGEVX {getGGEVX :: Char -> Char -> Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int, Int, CArray Int a, CArray Int a, a, a, CArray Int a, CArray Int a, Int)}

ggevx :: Class.Real a => Char -> Char -> Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int, Int, CArray Int a, CArray Int a, a, a, CArray Int a, CArray Int a, Int)
ggevx = getGGEVX $ Class.switchReal (GGEVX S.ggevx) (GGEVX D.ggevx)


newtype GGGLM a = GGGLM {getGGGLM :: IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray Int a -> Int -> IO (CArray Int a, CArray Int a, Int)}

ggglm :: Class.Real a => IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray Int a -> Int -> IO (CArray Int a, CArray Int a, Int)
ggglm = getGGGLM $ Class.switchReal (GGGLM S.ggglm) (GGGLM D.ggglm)


newtype GGHRD a = GGHRD {getGGHRD :: Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (Int)}

gghrd :: Class.Real a => Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (Int)
gghrd = getGGHRD $ Class.switchReal (GGHRD S.gghrd) (GGHRD D.gghrd)


newtype GGLSE a = GGLSE {getGGLSE :: IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray Int a -> IOCArray Int a -> Int -> IO (CArray Int a, Int)}

gglse :: Class.Real a => IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray Int a -> IOCArray Int a -> Int -> IO (CArray Int a, Int)
gglse = getGGLSE $ Class.switchReal (GGLSE S.gglse) (GGLSE D.gglse)


newtype GGQRF a = GGQRF {getGGQRF :: Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, Int)}

ggqrf :: Class.Real a => Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, Int)
ggqrf = getGGQRF $ Class.switchReal (GGQRF S.ggqrf) (GGQRF D.ggqrf)


newtype GGRQF a = GGRQF {getGGRQF :: Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, Int)}

ggrqf :: Class.Real a => Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, Int)
ggrqf = getGGRQF $ Class.switchReal (GGRQF S.ggrqf) (GGRQF D.ggrqf)


newtype GSVJ0 a = GSVJ0 {getGSVJ0 :: Char -> Int -> IOCArray (Int,Int) a -> IOCArray Int a -> IOCArray Int a -> Int -> IOCArray (Int,Int) a -> a -> a -> a -> Int -> Int -> IO (Int)}

gsvj0 :: Class.Real a => Char -> Int -> IOCArray (Int,Int) a -> IOCArray Int a -> IOCArray Int a -> Int -> IOCArray (Int,Int) a -> a -> a -> a -> Int -> Int -> IO (Int)
gsvj0 = getGSVJ0 $ Class.switchReal (GSVJ0 S.gsvj0) (GSVJ0 D.gsvj0)


newtype GSVJ1 a = GSVJ1 {getGSVJ1 :: Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray Int a -> IOCArray Int a -> Int -> IOCArray (Int,Int) a -> a -> a -> a -> Int -> Int -> IO (Int)}

gsvj1 :: Class.Real a => Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray Int a -> IOCArray Int a -> Int -> IOCArray (Int,Int) a -> a -> a -> a -> Int -> Int -> IO (Int)
gsvj1 = getGSVJ1 $ Class.switchReal (GSVJ1 S.gsvj1) (GSVJ1 D.gsvj1)


newtype GTCON a = GTCON {getGTCON :: Char -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int CInt -> a -> IO (a, Int)}

gtcon :: Class.Real a => Char -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int CInt -> a -> IO (a, Int)
gtcon = getGTCON $ Class.switchReal (GTCON S.gtcon) (GTCON D.gtcon)


newtype GTRFS a = GTRFS {getGTRFS :: Char -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int CInt -> CArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, Int)}

gtrfs :: Class.Real a => Char -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int CInt -> CArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, Int)
gtrfs = getGTRFS $ Class.switchReal (GTRFS S.gtrfs) (GTRFS D.gtrfs)


newtype GTSV a = GTSV {getGTSV :: IOCArray Int a -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> IO (Int)}

gtsv :: Class.Real a => IOCArray Int a -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> IO (Int)
gtsv = getGTSV $ Class.switchReal (GTSV S.gtsv) (GTSV D.gtsv)


newtype GTSVX a = GTSVX {getGTSVX :: Char -> Char -> CArray Int a -> CArray Int a -> CArray Int a -> IOCArray Int a -> IOCArray Int a -> IOCArray Int a -> IOCArray Int a -> IOCArray Int CInt -> CArray (Int,Int) a -> Int -> IO (CArray (Int,Int) a, a, CArray Int a, CArray Int a, Int)}

gtsvx :: Class.Real a => Char -> Char -> CArray Int a -> CArray Int a -> CArray Int a -> IOCArray Int a -> IOCArray Int a -> IOCArray Int a -> IOCArray Int a -> IOCArray Int CInt -> CArray (Int,Int) a -> Int -> IO (CArray (Int,Int) a, a, CArray Int a, CArray Int a, Int)
gtsvx = getGTSVX $ Class.switchReal (GTSVX S.gtsvx) (GTSVX D.gtsvx)


newtype GTTRF a = GTTRF {getGTTRF :: IOCArray Int a -> IOCArray Int a -> IOCArray Int a -> IO (CArray Int a, CArray Int CInt, Int)}

gttrf :: Class.Real a => IOCArray Int a -> IOCArray Int a -> IOCArray Int a -> IO (CArray Int a, CArray Int CInt, Int)
gttrf = getGTTRF $ Class.switchReal (GTTRF S.gttrf) (GTTRF D.gttrf)


newtype GTTRS a = GTTRS {getGTTRS :: Char -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int CInt -> IOCArray (Int,Int) a -> IO (Int)}

gttrs :: Class.Real a => Char -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int CInt -> IOCArray (Int,Int) a -> IO (Int)
gttrs = getGTTRS $ Class.switchReal (GTTRS S.gttrs) (GTTRS D.gttrs)


newtype GTTS2 a = GTTS2 {getGTTS2 :: Int -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int CInt -> IOCArray (Int,Int) a -> IO ()}

gtts2 :: Class.Real a => Int -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int CInt -> IOCArray (Int,Int) a -> IO ()
gtts2 = getGTTS2 $ Class.switchReal (GTTS2 S.gtts2) (GTTS2 D.gtts2)


newtype SBEV a = SBEV {getSBEV :: Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)}

sbev :: Class.Real a => Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)
sbev = getSBEV $ Class.switchReal (SBEV S.sbev) (SBEV D.sbev)


newtype SBEVD a = SBEVD {getSBEVD :: Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)}

sbevd :: Class.Real a => Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)
sbevd = getSBEVD $ Class.switchReal (SBEVD S.sbevd) (SBEVD D.sbevd)


newtype SBEVX a = SBEVX {getSBEVX :: Char -> Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> a -> a -> Int -> Int -> a -> Int -> Int -> IO (CArray (Int,Int) a, Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)}

sbevx :: Class.Real a => Char -> Char -> Char -> Int -> IOCArray (Int,Int) a -> Int -> a -> a -> Int -> Int -> a -> Int -> Int -> IO (CArray (Int,Int) a, Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)
sbevx = getSBEVX $ Class.switchReal (SBEVX S.sbevx) (SBEVX D.sbevx)


newtype SBGST a = SBGST {getSBGST :: Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> CArray (Int,Int) a -> Int -> IO (CArray (Int,Int) a, Int)}

sbgst :: Class.Real a => Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> CArray (Int,Int) a -> Int -> IO (CArray (Int,Int) a, Int)
sbgst = getSBGST $ Class.switchReal (SBGST S.sbgst) (SBGST D.sbgst)


newtype SBGV a = SBGV {getSBGV :: Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)}

sbgv :: Class.Real a => Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)
sbgv = getSBGV $ Class.switchReal (SBGV S.sbgv) (SBGV D.sbgv)


newtype SBGVD a = SBGVD {getSBGVD :: Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)}

sbgvd :: Class.Real a => Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)
sbgvd = getSBGVD $ Class.switchReal (SBGVD S.sbgvd) (SBGVD D.sbgvd)


newtype SBGVX a = SBGVX {getSBGVX :: Char -> Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> a -> a -> Int -> Int -> a -> Int -> Int -> IO (CArray (Int,Int) a, Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)}

sbgvx :: Class.Real a => Char -> Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> a -> a -> Int -> Int -> a -> Int -> Int -> IO (CArray (Int,Int) a, Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)
sbgvx = getSBGVX $ Class.switchReal (SBGVX S.sbgvx) (SBGVX D.sbgvx)


newtype SBTRD a = SBTRD {getSBTRD :: Char -> Char -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, Int)}

sbtrd :: Class.Real a => Char -> Char -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, Int)
sbtrd = getSBTRD $ Class.switchReal (SBTRD S.sbtrd) (SBTRD D.sbtrd)


newtype SYEV a = SYEV {getSYEV :: Char -> Char -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)}

syev :: Class.Real a => Char -> Char -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)
syev = getSYEV $ Class.switchReal (SYEV S.syev) (SYEV D.syev)


newtype SYEVD a = SYEVD {getSYEVD :: Char -> Char -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, Int)}

syevd :: Class.Real a => Char -> Char -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray Int a, Int)
syevd = getSYEVD $ Class.switchReal (SYEVD S.syevd) (SYEVD D.syevd)


newtype SYEVR a = SYEVR {getSYEVR :: Char -> Char -> Char -> IOCArray (Int,Int) a -> a -> a -> Int -> Int -> a -> Int -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)}

syevr :: Class.Real a => Char -> Char -> Char -> IOCArray (Int,Int) a -> a -> a -> Int -> Int -> a -> Int -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)
syevr = getSYEVR $ Class.switchReal (SYEVR S.syevr) (SYEVR D.syevr)


newtype SYEVX a = SYEVX {getSYEVX :: Char -> Char -> Char -> IOCArray (Int,Int) a -> a -> a -> Int -> Int -> a -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)}

syevx :: Class.Real a => Char -> Char -> Char -> IOCArray (Int,Int) a -> a -> a -> Int -> Int -> a -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)
syevx = getSYEVX $ Class.switchReal (SYEVX S.syevx) (SYEVX D.syevx)


newtype SYGS2 a = SYGS2 {getSYGS2 :: Int -> Char -> IOCArray (Int,Int) a -> CArray (Int,Int) a -> IO (Int)}

sygs2 :: Class.Real a => Int -> Char -> IOCArray (Int,Int) a -> CArray (Int,Int) a -> IO (Int)
sygs2 = getSYGS2 $ Class.switchReal (SYGS2 S.sygs2) (SYGS2 D.sygs2)


newtype SYGST a = SYGST {getSYGST :: Int -> Char -> IOCArray (Int,Int) a -> CArray (Int,Int) a -> IO (Int)}

sygst :: Class.Real a => Int -> Char -> IOCArray (Int,Int) a -> CArray (Int,Int) a -> IO (Int)
sygst = getSYGST $ Class.switchReal (SYGST S.sygst) (SYGST D.sygst)


newtype SYGV a = SYGV {getSYGV :: Int -> Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)}

sygv :: Class.Real a => Int -> Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, Int)
sygv = getSYGV $ Class.switchReal (SYGV S.sygv) (SYGV D.sygv)


newtype SYGVD a = SYGVD {getSYGVD :: Int -> Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> IO (CArray Int a, Int)}

sygvd :: Class.Real a => Int -> Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> IO (CArray Int a, Int)
sygvd = getSYGVD $ Class.switchReal (SYGVD S.sygvd) (SYGVD D.sygvd)


newtype SYGVX a = SYGVX {getSYGVX :: Int -> Char -> Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> a -> a -> Int -> Int -> a -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)}

sygvx :: Class.Real a => Int -> Char -> Char -> Char -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> a -> a -> Int -> Int -> a -> Int -> Int -> Int -> IO (Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)
sygvx = getSYGVX $ Class.switchReal (SYGVX S.sygvx) (SYGVX D.sygvx)


newtype SFRK a = SFRK {getSFRK :: Char -> Char -> Char -> Int -> Int -> a -> CArray (Int,Int) a -> a -> IOCArray Int a -> IO ()}

sfrk :: Class.Real a => Char -> Char -> Char -> Int -> Int -> a -> CArray (Int,Int) a -> a -> IOCArray Int a -> IO ()
sfrk = getSFRK $ Class.switchReal (SFRK S.sfrk) (SFRK D.sfrk)


newtype HGEQZ a = HGEQZ {getHGEQZ :: Char -> Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, Int)}

hgeqz :: Class.Real a => Char -> Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, Int)
hgeqz = getHGEQZ $ Class.switchReal (HGEQZ S.hgeqz) (HGEQZ D.hgeqz)


newtype SPEV a = SPEV {getSPEV :: Char -> Char -> Int -> IOCArray Int a -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)}

spev :: Class.Real a => Char -> Char -> Int -> IOCArray Int a -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)
spev = getSPEV $ Class.switchReal (SPEV S.spev) (SPEV D.spev)


newtype SPEVD a = SPEVD {getSPEVD :: Char -> Char -> Int -> IOCArray Int a -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)}

spevd :: Class.Real a => Char -> Char -> Int -> IOCArray Int a -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)
spevd = getSPEVD $ Class.switchReal (SPEVD S.spevd) (SPEVD D.spevd)


newtype SPEVX a = SPEVX {getSPEVX :: Char -> Char -> Char -> Int -> IOCArray Int a -> a -> a -> Int -> Int -> a -> Int -> Int -> IO (Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)}

spevx :: Class.Real a => Char -> Char -> Char -> Int -> IOCArray Int a -> a -> a -> Int -> Int -> a -> Int -> Int -> IO (Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)
spevx = getSPEVX $ Class.switchReal (SPEVX S.spevx) (SPEVX D.spevx)


newtype SPGST a = SPGST {getSPGST :: Int -> Char -> Int -> IOCArray Int a -> CArray Int a -> IO (Int)}

spgst :: Class.Real a => Int -> Char -> Int -> IOCArray Int a -> CArray Int a -> IO (Int)
spgst = getSPGST $ Class.switchReal (SPGST S.spgst) (SPGST D.spgst)


newtype SPGV a = SPGV {getSPGV :: Int -> Char -> Char -> Int -> IOCArray Int a -> IOCArray Int a -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)}

spgv :: Class.Real a => Int -> Char -> Char -> Int -> IOCArray Int a -> IOCArray Int a -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)
spgv = getSPGV $ Class.switchReal (SPGV S.spgv) (SPGV D.spgv)


newtype SPGVD a = SPGVD {getSPGVD :: Int -> Char -> Char -> Int -> IOCArray Int a -> IOCArray Int a -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)}

spgvd :: Class.Real a => Int -> Char -> Char -> Int -> IOCArray Int a -> IOCArray Int a -> Int -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, Int)
spgvd = getSPGVD $ Class.switchReal (SPGVD S.spgvd) (SPGVD D.spgvd)


newtype SPGVX a = SPGVX {getSPGVX :: Int -> Char -> Char -> Char -> Int -> IOCArray Int a -> IOCArray Int a -> a -> a -> Int -> Int -> a -> Int -> Int -> IO (Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)}

spgvx :: Class.Real a => Int -> Char -> Char -> Char -> Int -> IOCArray Int a -> IOCArray Int a -> a -> a -> Int -> Int -> a -> Int -> Int -> IO (Int, CArray Int a, CArray (Int,Int) a, CArray Int CInt, Int)
spgvx = getSPGVX $ Class.switchReal (SPGVX S.spgvx) (SPGVX D.spgvx)


newtype SPTRD a = SPTRD {getSPTRD :: Char -> Int -> IOCArray Int a -> IO (CArray Int a, CArray Int a, CArray Int a, Int)}

sptrd :: Class.Real a => Char -> Int -> IOCArray Int a -> IO (CArray Int a, CArray Int a, CArray Int a, Int)
sptrd = getSPTRD $ Class.switchReal (SPTRD S.sptrd) (SPTRD D.sptrd)


newtype HSEIN a = HSEIN {getHSEIN :: Char -> Char -> Char -> IOCArray Int Bool -> CArray (Int,Int) a -> IOCArray Int a -> CArray Int a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (Int, CArray Int CInt, CArray Int CInt, Int)}

hsein :: Class.Real a => Char -> Char -> Char -> IOCArray Int Bool -> CArray (Int,Int) a -> IOCArray Int a -> CArray Int a -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (Int, CArray Int CInt, CArray Int CInt, Int)
hsein = getHSEIN $ Class.switchReal (HSEIN S.hsein) (HSEIN D.hsein)


newtype HSEQR a = HSEQR {getHSEQR :: Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, Int)}

hseqr :: Class.Real a => Char -> Char -> Int -> Int -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> IO (CArray Int a, CArray Int a, Int)
hseqr = getHSEQR $ Class.switchReal (HSEQR S.hseqr) (HSEQR D.hseqr)


newtype ILALC a = ILALC {getILALC :: Int -> CArray (Int,Int) a -> IO CInt}

ilalc :: Class.Real a => Int -> CArray (Int,Int) a -> IO CInt
ilalc = getILALC $ Class.switchReal (ILALC S.ilalc) (ILALC D.ilalc)


newtype ILALR a = ILALR {getILALR :: Int -> CArray (Int,Int) a -> IO CInt}

ilalr :: Class.Real a => Int -> CArray (Int,Int) a -> IO CInt
ilalr = getILALR $ Class.switchReal (ILALR S.ilalr) (ILALR D.ilalr)


newtype ISNAN a = ISNAN {getISNAN :: a -> IO Bool}

isnan :: Class.Real a => a -> IO Bool
isnan = getISNAN $ Class.switchReal (ISNAN S.isnan) (ISNAN D.isnan)


newtype LABAD a = LABAD {getLABAD :: a -> a -> IO (a, a)}

labad :: Class.Real a => a -> a -> IO (a, a)
labad = getLABAD $ Class.switchReal (LABAD S.labad) (LABAD D.labad)


newtype LABRD a = LABRD {getLABRD :: Int -> Int -> IOCArray (Int,Int) a -> Int -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a)}

labrd :: Class.Real a => Int -> Int -> IOCArray (Int,Int) a -> Int -> Int -> IO (CArray Int a, CArray Int a, CArray Int a, CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a)
labrd = getLABRD $ Class.switchReal (LABRD S.labrd) (LABRD D.labrd)


newtype LACN2 a = LACN2 {getLACN2 :: IOCArray Int a -> a -> Int -> IOCArray Int CInt -> IO (CArray Int a, CArray Int CInt, a, Int)}

lacn2 :: Class.Real a => IOCArray Int a -> a -> Int -> IOCArray Int CInt -> IO (CArray Int a, CArray Int CInt, a, Int)
lacn2 = getLACN2 $ Class.switchReal (LACN2 S.lacn2) (LACN2 D.lacn2)


newtype LACON a = LACON {getLACON :: IOCArray Int a -> a -> Int -> IO (CArray Int a, CArray Int CInt, a, Int)}

lacon :: Class.Real a => IOCArray Int a -> a -> Int -> IO (CArray Int a, CArray Int CInt, a, Int)
lacon = getLACON $ Class.switchReal (LACON S.lacon) (LACON D.lacon)


newtype LACPY a = LACPY {getLACPY :: Char -> Int -> CArray (Int,Int) a -> Int -> IO (CArray (Int,Int) a)}

lacpy :: Class.Real a => Char -> Int -> CArray (Int,Int) a -> Int -> IO (CArray (Int,Int) a)
lacpy = getLACPY $ Class.switchReal (LACPY S.lacpy) (LACPY D.lacpy)


newtype LADIV a = LADIV {getLADIV :: a -> a -> a -> a -> IO (a, a)}

ladiv :: Class.Real a => a -> a -> a -> a -> IO (a, a)
ladiv = getLADIV $ Class.switchReal (LADIV S.ladiv) (LADIV D.ladiv)


newtype LAE2 a = LAE2 {getLAE2 :: a -> a -> a -> IO (a, a)}

lae2 :: Class.Real a => a -> a -> a -> IO (a, a)
lae2 = getLAE2 $ Class.switchReal (LAE2 S.lae2) (LAE2 D.lae2)


newtype LAEBZ a = LAEBZ {getLAEBZ :: Int -> Int -> Int -> a -> a -> a -> CArray Int a -> CArray Int a -> CArray Int a -> IOCArray Int CInt -> IOCArray (Int,Int) a -> IOCArray Int a -> IOCArray (Int,Int) CInt -> IO (Int, Int)}

laebz :: Class.Real a => Int -> Int -> Int -> a -> a -> a -> CArray Int a -> CArray Int a -> CArray Int a -> IOCArray Int CInt -> IOCArray (Int,Int) a -> IOCArray Int a -> IOCArray (Int,Int) CInt -> IO (Int, Int)
laebz = getLAEBZ $ Class.switchReal (LAEBZ S.laebz) (LAEBZ D.laebz)


newtype LAED0 a = LAED0 {getLAED0 :: Int -> Int -> IOCArray Int a -> CArray Int a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray (Int,Int) a, Int)}

laed0 :: Class.Real a => Int -> Int -> IOCArray Int a -> CArray Int a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (CArray (Int,Int) a, Int)
laed0 = getLAED0 $ Class.switchReal (LAED0 S.laed0) (LAED0 D.laed0)


newtype LAED1 a = LAED1 {getLAED1 :: IOCArray Int a -> IOCArray (Int,Int) a -> IOCArray Int CInt -> a -> Int -> IO (Int)}

laed1 :: Class.Real a => IOCArray Int a -> IOCArray (Int,Int) a -> IOCArray Int CInt -> a -> Int -> IO (Int)
laed1 = getLAED1 $ Class.switchReal (LAED1 S.laed1) (LAED1 D.laed1)


newtype LAED2 a = LAED2 {getLAED2 :: Int -> IOCArray Int a -> IOCArray (Int,Int) a -> IOCArray Int CInt -> a -> CArray Int a -> IO (Int, a, CArray Int a, CArray Int a, CArray Int a, CArray Int CInt, CArray Int CInt, CArray Int CInt, CArray Int CInt, Int)}

laed2 :: Class.Real a => Int -> IOCArray Int a -> IOCArray (Int,Int) a -> IOCArray Int CInt -> a -> CArray Int a -> IO (Int, a, CArray Int a, CArray Int a, CArray Int a, CArray Int CInt, CArray Int CInt, CArray Int CInt, CArray Int CInt, Int)
laed2 = getLAED2 $ Class.switchReal (LAED2 S.laed2) (LAED2 D.laed2)


newtype LAED3 a = LAED3 {getLAED3 :: Int -> Int -> a -> IOCArray Int a -> CArray Int a -> CArray Int CInt -> CArray Int CInt -> IOCArray Int a -> IO (CArray Int a, CArray (Int,Int) a, CArray Int a, Int)}

laed3 :: Class.Real a => Int -> Int -> a -> IOCArray Int a -> CArray Int a -> CArray Int CInt -> CArray Int CInt -> IOCArray Int a -> IO (CArray Int a, CArray (Int,Int) a, CArray Int a, Int)
laed3 = getLAED3 $ Class.switchReal (LAED3 S.laed3) (LAED3 D.laed3)


newtype LAED4 a = LAED4 {getLAED4 :: Int -> CArray Int a -> CArray Int a -> a -> IO (CArray Int a, a, Int)}

laed4 :: Class.Real a => Int -> CArray Int a -> CArray Int a -> a -> IO (CArray Int a, a, Int)
laed4 = getLAED4 $ Class.switchReal (LAED4 S.laed4) (LAED4 D.laed4)


newtype LAED5 a = LAED5 {getLAED5 :: Int -> CArray Int a -> CArray Int a -> a -> IO (CArray Int a, a)}

laed5 :: Class.Real a => Int -> CArray Int a -> CArray Int a -> a -> IO (CArray Int a, a)
laed5 = getLAED5 $ Class.switchReal (LAED5 S.laed5) (LAED5 D.laed5)


newtype LAED6 a = LAED6 {getLAED6 :: Int -> Bool -> a -> CArray Int a -> CArray Int a -> a -> IO (a, Int)}

laed6 :: Class.Real a => Int -> Bool -> a -> CArray Int a -> CArray Int a -> a -> IO (a, Int)
laed6 = getLAED6 $ Class.switchReal (LAED6 S.laed6) (LAED6 D.laed6)


newtype LAED7 a = LAED7 {getLAED7 :: Int -> Int -> Int -> Int -> Int -> IOCArray Int a -> IOCArray (Int,Int) a -> a -> Int -> IOCArray Int a -> IOCArray Int CInt -> CArray Int CInt -> CArray Int CInt -> CArray Int CInt -> CArray (Int,Int) CInt -> CArray (Int,Int) a -> IO (CArray Int CInt, Int)}

laed7 :: Class.Real a => Int -> Int -> Int -> Int -> Int -> IOCArray Int a -> IOCArray (Int,Int) a -> a -> Int -> IOCArray Int a -> IOCArray Int CInt -> CArray Int CInt -> CArray Int CInt -> CArray Int CInt -> CArray (Int,Int) CInt -> CArray (Int,Int) a -> IO (CArray Int CInt, Int)
laed7 = getLAED7 $ Class.switchReal (LAED7 S.laed7) (LAED7 D.laed7)


newtype LAED8 a = LAED8 {getLAED8 :: Int -> Int -> IOCArray Int a -> IOCArray (Int,Int) a -> CArray Int CInt -> a -> Int -> CArray Int a -> Int -> IO (Int, a, CArray Int a, CArray (Int,Int) a, CArray Int a, CArray Int CInt, Int, CArray (Int,Int) CInt, CArray (Int,Int) a, CArray Int CInt, CArray Int CInt, Int)}

laed8 :: Class.Real a => Int -> Int -> IOCArray Int a -> IOCArray (Int,Int) a -> CArray Int CInt -> a -> Int -> CArray Int a -> Int -> IO (Int, a, CArray Int a, CArray (Int,Int) a, CArray Int a, CArray Int CInt, Int, CArray (Int,Int) CInt, CArray (Int,Int) a, CArray Int CInt, CArray Int CInt, Int)
laed8 = getLAED8 $ Class.switchReal (LAED8 S.laed8) (LAED8 D.laed8)


newtype LAED9 a = LAED9 {getLAED9 :: Int -> Int -> Int -> Int -> a -> CArray Int a -> CArray Int a -> Int -> IO (CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)}

laed9 :: Class.Real a => Int -> Int -> Int -> Int -> a -> CArray Int a -> CArray Int a -> Int -> IO (CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a, Int)
laed9 = getLAED9 $ Class.switchReal (LAED9 S.laed9) (LAED9 D.laed9)


newtype LAEDA a = LAEDA {getLAEDA :: Int -> Int -> Int -> Int -> CArray Int CInt -> CArray Int CInt -> CArray Int CInt -> CArray (Int,Int) CInt -> CArray (Int,Int) a -> CArray Int a -> CArray Int CInt -> IO (CArray Int a, CArray Int a, Int)}

laeda :: Class.Real a => Int -> Int -> Int -> Int -> CArray Int CInt -> CArray Int CInt -> CArray Int CInt -> CArray (Int,Int) CInt -> CArray (Int,Int) a -> CArray Int a -> CArray Int CInt -> IO (CArray Int a, CArray Int a, Int)
laeda = getLAEDA $ Class.switchReal (LAEDA S.laeda) (LAEDA D.laeda)


newtype LAEIN a = LAEIN {getLAEIN :: Bool -> Bool -> CArray (Int,Int) a -> a -> a -> IOCArray Int a -> IOCArray Int a -> Int -> a -> a -> a -> IO (CArray (Int,Int) a, Int)}

laein :: Class.Real a => Bool -> Bool -> CArray (Int,Int) a -> a -> a -> IOCArray Int a -> IOCArray Int a -> Int -> a -> a -> a -> IO (CArray (Int,Int) a, Int)
laein = getLAEIN $ Class.switchReal (LAEIN S.laein) (LAEIN D.laein)


newtype LAEV2 a = LAEV2 {getLAEV2 :: a -> a -> a -> IO (a, a, a, a)}

laev2 :: Class.Real a => a -> a -> a -> IO (a, a, a, a)
laev2 = getLAEV2 $ Class.switchReal (LAEV2 S.laev2) (LAEV2 D.laev2)


newtype LAEXC a = LAEXC {getLAEXC :: Bool -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (Int)}

laexc :: Class.Real a => Bool -> IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> Int -> Int -> Int -> IO (Int)
laexc = getLAEXC $ Class.switchReal (LAEXC S.laexc) (LAEXC D.laexc)


newtype LAG2 a = LAG2 {getLAG2 :: CArray (Int,Int) a -> CArray (Int,Int) a -> a -> IO (a, a, a, a, a)}

lag2 :: Class.Real a => CArray (Int,Int) a -> CArray (Int,Int) a -> a -> IO (a, a, a, a, a)
lag2 = getLAG2 $ Class.switchReal (LAG2 S.lag2) (LAG2 D.lag2)


newtype LAGS2 a = LAGS2 {getLAGS2 :: Bool -> a -> a -> a -> a -> a -> a -> IO (a, a, a, a, a, a)}

lags2 :: Class.Real a => Bool -> a -> a -> a -> a -> a -> a -> IO (a, a, a, a, a, a)
lags2 = getLAGS2 $ Class.switchReal (LAGS2 S.lags2) (LAGS2 D.lags2)


newtype LAGTF a = LAGTF {getLAGTF :: IOCArray Int a -> a -> IOCArray Int a -> IOCArray Int a -> a -> IO (CArray Int a, CArray Int CInt, Int)}

lagtf :: Class.Real a => IOCArray Int a -> a -> IOCArray Int a -> IOCArray Int a -> a -> IO (CArray Int a, CArray Int CInt, Int)
lagtf = getLAGTF $ Class.switchReal (LAGTF S.lagtf) (LAGTF D.lagtf)


newtype LAGTM a = LAGTM {getLAGTM :: Char -> a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray (Int,Int) a -> a -> IOCArray (Int,Int) a -> IO ()}

lagtm :: Class.Real a => Char -> a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray (Int,Int) a -> a -> IOCArray (Int,Int) a -> IO ()
lagtm = getLAGTM $ Class.switchReal (LAGTM S.lagtm) (LAGTM D.lagtm)


newtype LAGTS a = LAGTS {getLAGTS :: Int -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int CInt -> IOCArray Int a -> a -> IO (a, Int)}

lagts :: Class.Real a => Int -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int a -> CArray Int CInt -> IOCArray Int a -> a -> IO (a, Int)
lagts = getLAGTS $ Class.switchReal (LAGTS S.lagts) (LAGTS D.lagts)


newtype LAGV2 a = LAGV2 {getLAGV2 :: IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, CArray Int a, a, a, a, a)}

lagv2 :: Class.Real a => IOCArray (Int,Int) a -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, CArray Int a, a, a, a, a)
lagv2 = getLAGV2 $ Class.switchReal (LAGV2 S.lagv2) (LAGV2 D.lagv2)


newtype LAHQR a = LAHQR {getLAHQR :: Bool -> Bool -> Int -> Int -> IOCArray (Int,Int) a -> Int -> Int -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, Int)}

lahqr :: Class.Real a => Bool -> Bool -> Int -> Int -> IOCArray (Int,Int) a -> Int -> Int -> IOCArray (Int,Int) a -> IO (CArray Int a, CArray Int a, Int)
lahqr = getLAHQR $ Class.switchReal (LAHQR S.lahqr) (LAHQR D.lahqr)


newtype LAHR2 a = LAHR2 {getLAHR2 :: Int -> Int -> Int -> IOCArray (Int,Int) a -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a)}

lahr2 :: Class.Real a => Int -> Int -> Int -> IOCArray (Int,Int) a -> Int -> Int -> IO (CArray Int a, CArray (Int,Int) a, CArray (Int,Int) a)
lahr2 = getLAHR2 $ Class.switchReal (LAHR2 S.lahr2) (LAHR2 D.lahr2)


newtype LAIC1 a = LAIC1 {getLAIC1 :: Int -> CArray Int a -> a -> CArray Int a -> a -> IO (a, a, a)}

laic1 :: Class.Real a => Int -> CArray Int a -> a -> CArray Int a -> a -> IO (a, a, a)
laic1 = getLAIC1 $ Class.switchReal (LAIC1 S.laic1) (LAIC1 D.laic1)


newtype LAISNAN a = LAISNAN {getLAISNAN :: a -> a -> IO Bool}

laisnan :: Class.Real a => a -> a -> IO Bool
laisnan = getLAISNAN $ Class.switchReal (LAISNAN S.laisnan) (LAISNAN D.laisnan)


newtype LALN2 a = LALN2 {getLALN2 :: Bool -> a -> a -> CArray (Int,Int) a -> a -> a -> CArray (Int,Int) a -> a -> a -> Int -> IO (CArray (Int,Int) a, a, a, Int)}

laln2 :: Class.Real a => Bool -> a -> a -> CArray (Int,Int) a -> a -> a -> CArray (Int,Int) a -> a -> a -> Int -> IO (CArray (Int,Int) a, a, a, Int)
laln2 = getLALN2 $ Class.switchReal (LALN2 S.laln2) (LALN2 D.laln2)


newtype LALS0 a = LALS0 {getLALS0 :: Int -> Int -> Int -> Int -> IOCArray (Int,Int) a -> Int -> CArray Int CInt -> Int -> CArray (Int,Int) CInt -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray Int a -> CArray (Int,Int) a -> CArray Int a -> a -> a -> IO (CArray (Int,Int) a, Int)}

lals0 :: Class.Real a => Int -> Int -> Int -> Int -> IOCArray (Int,Int) a -> Int -> CArray Int CInt -> Int -> CArray (Int,Int) CInt -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray Int a -> CArray (Int,Int) a -> CArray Int a -> a -> a -> IO (CArray (Int,Int) a, Int)
lals0 = getLALS0 $ Class.switchReal (LALS0 S.lals0) (LALS0 D.lals0)


newtype LALSA a = LALSA {getLALSA :: Int -> IOCArray (Int,Int) a -> Int -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray Int CInt -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray Int CInt -> CArray (Int,Int) CInt -> CArray (Int,Int) CInt -> CArray (Int,Int) a -> CArray Int a -> CArray Int a -> IO (CArray (Int,Int) a, Int)}

lalsa :: Class.Real a => Int -> IOCArray (Int,Int) a -> Int -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray Int CInt -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray (Int,Int) a -> CArray Int CInt -> CArray (Int,Int) CInt -> CArray (Int,Int) CInt -> CArray (Int,Int) a -> CArray Int a -> CArray Int a -> IO (CArray (Int,Int) a, Int)
lalsa = getLALSA $ Class.switchReal (LALSA S.lalsa) (LALSA D.lalsa)


newtype LALSD a = LALSD {getLALSD :: Char -> Int -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> a -> Int -> Int -> IO (Int, Int)}

lalsd :: Class.Real a => Char -> Int -> IOCArray Int a -> IOCArray Int a -> IOCArray (Int,Int) a -> a -> Int -> Int -> IO (Int, Int)
lalsd = getLALSD $ Class.switchReal (LALSD S.lalsd) (LALSD D.lalsd)


newtype LAMRG a = LAMRG {getLAMRG :: Int -> Int -> CArray Int a -> Int -> Int -> IO (CArray Int CInt)}

lamrg :: Class.Real a => Int -> Int -> CArray Int a -> Int -> Int -> IO (CArray Int CInt)
lamrg = getLAMRG $ Class.switchReal (LAMRG S.lamrg) (LAMRG D.lamrg)


newtype LANEG a = LANEG {getLANEG :: CArray Int a -> CArray Int a -> a -> a -> Int -> IO CInt}

laneg :: Class.Real a => CArray Int a -> CArray Int a -> a -> a -> Int -> IO CInt
laneg = getLANEG $ Class.switchReal (LANEG S.laneg) (LANEG D.laneg)


newtype LANGB a = LANGB {getLANGB :: Char -> Int -> Int -> CArray (Int,Int) a -> Int -> IO a}

langb :: Class.Real a => Char -> Int -> Int -> CArray (Int,Int) a -> Int -> IO a
langb = getLANGB $ Class.switchReal (LANGB S.langb) (LANGB D.langb)


newtype LANGE a = LANGE {getLANGE :: Char -> Int -> CArray (Int,Int) a -> Int -> IO a}

lange :: Class.Real a => Char -> Int -> CArray (Int,Int) a -> Int -> IO a
lange = getLANGE $ Class.switchReal (LANGE S.lange) (LANGE D.lange)


newtype LANGT a = LANGT {getLANGT :: Char -> CArray Int a -> CArray Int a -> CArray Int a -> IO a}

langt :: Class.Real a => Char -> CArray Int a -> CArray Int a -> CArray Int a -> IO a
langt = getLANGT $ Class.switchReal (LANGT S.langt) (LANGT D.langt)


newtype LANHS a = LANHS {getLANHS :: Char -> CArray (Int,Int) a -> Int -> IO a}

lanhs :: Class.Real a => Char -> CArray (Int,Int) a -> Int -> IO a
lanhs = getLANHS $ Class.switchReal (LANHS S.lanhs) (LANHS D.lanhs)


newtype LANSB a = LANSB {getLANSB :: Char -> Char -> Int -> CArray (Int,Int) a -> Int -> IO a}

lansb :: Class.Real a => Char -> Char -> Int -> CArray (Int,Int) a -> Int -> IO a
lansb = getLANSB $ Class.switchReal (LANSB S.lansb) (LANSB D.lansb)


newtype LANSF a = LANSF {getLANSF :: Char -> Char -> Char -> Int -> CArray Int a -> Int -> IO a}

lansf :: Class.Real a => Char -> Char -> Char -> Int -> CArray Int a -> Int -> IO a
lansf = getLANSF $ Class.switchReal (LANSF S.lansf) (LANSF D.lansf)


newtype LANSP a = LANSP {getLANSP :: Char -> Char -> Int -> CArray Int a -> Int -> IO a}

lansp :: Class.Real a => Char -> Char -> Int -> CArray Int a -> Int -> IO a
lansp = getLANSP $ Class.switchReal (LANSP S.lansp) (LANSP D.lansp)


newtype LANST a = LANST {getLANST :: Char -> CArray Int a -> CArray Int a -> IO a}

lanst :: Class.Real a => Char -> CArray Int a -> CArray Int a -> IO a
lanst = getLANST $ Class.switchReal (LANST S.lanst) (LANST D.lanst)


newtype LANSY a = LANSY {getLANSY :: Char -> Char -> CArray (Int,Int) a -> Int -> IO a}

lansy :: Class.Real a => Char -> Char -> CArray (Int,Int) a -> Int -> IO a
lansy = getLANSY $ Class.switchReal (LANSY S.lansy) (LANSY D.lansy)


newtype LANTB a = LANTB {getLANTB :: Char -> Char -> Char -> Int -> CArray (Int,Int) a -> Int -> IO a}

lantb :: Class.Real a => Char -> Char -> Char -> Int -> CArray (Int,Int) a -> Int -> IO a
lantb = getLANTB $ Class.switchReal (LANTB S.lantb) (LANTB D.lantb)


newtype LANTP a = LANTP {getLANTP :: Char -> Char -> Char -> Int -> CArray Int a -> Int -> IO a}

lantp :: Class.Real a => Char -> Char -> Char -> Int -> CArray Int a -> Int -> IO a
lantp = getLANTP $ Class.switchReal (LANTP S.lantp) (LANTP D.lantp)


newtype LANTR a = LANTR {getLANTR :: Char -> Char -> Char -> Int -> CArray (Int,Int) a -> Int -> IO a}

lantr :: Class.Real a => Char -> Char -> Char -> Int -> CArray (Int,Int) a -> Int -> IO a
lantr = getLANTR $ Class.switchReal (LANTR S.lantr) (LANTR D.lantr)


newtype LANV2 a = LANV2 {getLANV2 :: a -> a -> a -> a -> IO (a, a, a, a, a, a, a, a, a, a)}

lanv2 :: Class.Real a => a -> a -> a -> a -> IO (a, a, a, a, a, a, a, a, a, a)
lanv2 = getLANV2 $ Class.switchReal (LANV2 S.lanv2) (LANV2 D.lanv2)


newtype LAPLL a = LAPLL {getLAPLL :: Int -> IOCArray Int a -> Int -> IOCArray Int a -> Int -> IO (a)}

lapll :: Class.Real a => Int -> IOCArray Int a -> Int -> IOCArray Int a -> Int -> IO (a)
lapll = getLAPLL $ Class.switchReal (LAPLL S.lapll) (LAPLL D.lapll)


newtype LAPMR a = LAPMR {getLAPMR :: Bool -> IOCArray (Int,Int) a -> IOCArray Int CInt -> IO ()}

lapmr :: Class.Real a => Bool -> IOCArray (Int,Int) a -> IOCArray Int CInt -> IO ()
lapmr = getLAPMR $ Class.switchReal (LAPMR S.lapmr) (LAPMR D.lapmr)


newtype LAPMT a = LAPMT {getLAPMT :: Bool -> Int -> IOCArray (Int,Int) a -> IOCArray Int CInt -> IO ()}

lapmt :: Class.Real a => Bool -> Int -> IOCArray (Int,Int) a -> IOCArray Int CInt -> IO ()
lapmt = getLAPMT $ Class.switchReal (LAPMT S.lapmt) (LAPMT D.lapmt)


newtype LAPY2 a = LAPY2 {getLAPY2 :: a -> a -> IO