-- Do not edit! Automatically generated by create-lapack-ffi.
module Numeric.BLAS.ComfortArray.Real (
   asum,
   axpy,
   copy,
   dot,
   gbmv,
   gemm,
   gemv,
   ger,
   sbmv,
   symv,
   syr,
   syr2,
   spmv,
   spr,
   spr2,
   iamax,
   nrm2,
   rot,
   rotg,
   rotm,
   rotmg,
   scal,
   swap,
   symm,
   syr2k,
   syrk,
   tbmv,
   tbsv,
   tpmv,
   tpsv,
   trmm,
   trmv,
   trsm,
   trsv,
   ) where

import qualified Numeric.BLAS.ComfortArray.Double as D
import qualified Numeric.BLAS.ComfortArray.Float as S
import qualified Numeric.Netlib.Class as Class
import Numeric.Netlib.ComfortArray.Utility (ZeroInt)

import Data.Array.Comfort.Storable.Mutable (IOArray)
import Data.Array.Comfort.Storable (Array)

import Foreign.C.Types (CInt)



newtype ASUM a = ASUM {ASUM a -> Int -> Array ZeroInt a -> Int -> IO a
getASUM :: Int -> Array ZeroInt a -> Int -> IO a}

asum :: Class.Real a => Int -> Array ZeroInt a -> Int -> IO a
asum :: Int -> Array ZeroInt a -> Int -> IO a
asum = ASUM a -> Int -> Array ZeroInt a -> Int -> IO a
forall a. ASUM a -> Int -> Array ZeroInt a -> Int -> IO a
getASUM (ASUM a -> Int -> Array ZeroInt a -> Int -> IO a)
-> ASUM a -> Int -> Array ZeroInt a -> Int -> IO a
forall a b. (a -> b) -> a -> b
$ ASUM Float -> ASUM Double -> ASUM a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Int -> Array ZeroInt Float -> Int -> IO Float) -> ASUM Float
forall a. (Int -> Array ZeroInt a -> Int -> IO a) -> ASUM a
ASUM Int -> Array ZeroInt Float -> Int -> IO Float
S.asum) ((Int -> Array ZeroInt Double -> Int -> IO Double) -> ASUM Double
forall a. (Int -> Array ZeroInt a -> Int -> IO a) -> ASUM a
ASUM Int -> Array ZeroInt Double -> Int -> IO Double
D.asum)


newtype AXPY a = AXPY {AXPY a
-> Int
-> a
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> IO ()
getAXPY :: Int -> a -> Array ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> IO ()}

axpy :: Class.Real a => Int -> a -> Array ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> IO ()
axpy :: Int
-> a -> Array ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> IO ()
axpy = AXPY a
-> Int
-> a
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
AXPY a
-> Int
-> a
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> IO ()
getAXPY (AXPY a
 -> Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> AXPY a
-> Int
-> a
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ AXPY Float -> AXPY Double -> AXPY a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Int
 -> Float
 -> Array ZeroInt Float
 -> Int
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> AXPY Float
forall a.
(Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> AXPY a
AXPY Int
-> Float
-> Array ZeroInt Float
-> Int
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.axpy) ((Int
 -> Double
 -> Array ZeroInt Double
 -> Int
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> AXPY Double
forall a.
(Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> AXPY a
AXPY Int
-> Double
-> Array ZeroInt Double
-> Int
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.axpy)


newtype COPY a = COPY {COPY a
-> Int -> Array ZeroInt a -> Int -> Int -> IO (Array ZeroInt a)
getCOPY :: Int -> Array ZeroInt a -> Int -> Int -> IO (Array ZeroInt a)}

copy :: Class.Real a => Int -> Array ZeroInt a -> Int -> Int -> IO (Array ZeroInt a)
copy :: Int -> Array ZeroInt a -> Int -> Int -> IO (Array ZeroInt a)
copy = COPY a
-> Int -> Array ZeroInt a -> Int -> Int -> IO (Array ZeroInt a)
forall a.
COPY a
-> Int -> Array ZeroInt a -> Int -> Int -> IO (Array ZeroInt a)
getCOPY (COPY a
 -> Int -> Array ZeroInt a -> Int -> Int -> IO (Array ZeroInt a))
-> COPY a
-> Int
-> Array ZeroInt a
-> Int
-> Int
-> IO (Array ZeroInt a)
forall a b. (a -> b) -> a -> b
$ COPY Float -> COPY Double -> COPY a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Int
 -> Array ZeroInt Float -> Int -> Int -> IO (Array ZeroInt Float))
-> COPY Float
forall a.
(Int -> Array ZeroInt a -> Int -> Int -> IO (Array ZeroInt a))
-> COPY a
COPY Int
-> Array ZeroInt Float -> Int -> Int -> IO (Array ZeroInt Float)
S.copy) ((Int
 -> Array ZeroInt Double -> Int -> Int -> IO (Array ZeroInt Double))
-> COPY Double
forall a.
(Int -> Array ZeroInt a -> Int -> Int -> IO (Array ZeroInt a))
-> COPY a
COPY Int
-> Array ZeroInt Double -> Int -> Int -> IO (Array ZeroInt Double)
D.copy)


newtype DOT a = DOT {DOT a
-> Int -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IO a
getDOT :: Int -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IO a}

dot :: Class.Real a => Int -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IO a
dot :: Int -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IO a
dot = DOT a
-> Int -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IO a
forall a.
DOT a
-> Int -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IO a
getDOT (DOT a
 -> Int -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IO a)
-> DOT a
-> Int
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IO a
forall a b. (a -> b) -> a -> b
$ DOT Float -> DOT Double -> DOT a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Int
 -> Array ZeroInt Float
 -> Int
 -> Array ZeroInt Float
 -> Int
 -> IO Float)
-> DOT Float
forall a.
(Int -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IO a)
-> DOT a
DOT Int
-> Array ZeroInt Float
-> Int
-> Array ZeroInt Float
-> Int
-> IO Float
S.dot) ((Int
 -> Array ZeroInt Double
 -> Int
 -> Array ZeroInt Double
 -> Int
 -> IO Double)
-> DOT Double
forall a.
(Int -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IO a)
-> DOT a
DOT Int
-> Array ZeroInt Double
-> Int
-> Array ZeroInt Double
-> Int
-> IO Double
D.dot)


newtype GBMV a = GBMV {GBMV a
-> Char
-> Int
-> Int
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
getGBMV :: Char -> Int -> Int -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array ZeroInt a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()}

gbmv :: Class.Real a => Char -> Int -> Int -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array ZeroInt a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()
gbmv :: Char
-> Int
-> Int
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
gbmv = GBMV a
-> Char
-> Int
-> Int
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
GBMV a
-> Char
-> Int
-> Int
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
getGBMV (GBMV a
 -> Char
 -> Int
 -> Int
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> GBMV a
-> Char
-> Int
-> Int
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ GBMV Float -> GBMV Double -> GBMV a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Int
 -> Int
 -> Int
 -> Float
 -> Array (ZeroInt, ZeroInt) Float
 -> Array ZeroInt Float
 -> Int
 -> Float
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> GBMV Float
forall a.
(Char
 -> Int
 -> Int
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> GBMV a
GBMV Char
-> Int
-> Int
-> Int
-> Float
-> Array (ZeroInt, ZeroInt) Float
-> Array ZeroInt Float
-> Int
-> Float
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.gbmv) ((Char
 -> Int
 -> Int
 -> Int
 -> Double
 -> Array (ZeroInt, ZeroInt) Double
 -> Array ZeroInt Double
 -> Int
 -> Double
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> GBMV Double
forall a.
(Char
 -> Int
 -> Int
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> GBMV a
GBMV Char
-> Int
-> Int
-> Int
-> Double
-> Array (ZeroInt, ZeroInt) Double
-> Array ZeroInt Double
-> Int
-> Double
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.gbmv)


newtype GEMM a = GEMM {GEMM a
-> Char
-> Char
-> Int
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getGEMM :: Char -> Char -> Int -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array (ZeroInt,ZeroInt) a -> a -> IOArray (ZeroInt,ZeroInt) a -> IO ()}

gemm :: Class.Real a => Char -> Char -> Int -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array (ZeroInt,ZeroInt) a -> a -> IOArray (ZeroInt,ZeroInt) a -> IO ()
gemm :: Char
-> Char
-> Int
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
gemm = GEMM a
-> Char
-> Char
-> Int
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a.
GEMM a
-> Char
-> Char
-> Int
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getGEMM (GEMM a
 -> Char
 -> Char
 -> Int
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> GEMM a
-> Char
-> Char
-> Int
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a b. (a -> b) -> a -> b
$ GEMM Float -> GEMM Double -> GEMM a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Int
 -> Int
 -> Float
 -> Array (ZeroInt, ZeroInt) Float
 -> Array (ZeroInt, ZeroInt) Float
 -> Float
 -> IOArray (ZeroInt, ZeroInt) Float
 -> IO ())
-> GEMM Float
forall a.
(Char
 -> Char
 -> Int
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> GEMM a
GEMM Char
-> Char
-> Int
-> Int
-> Float
-> Array (ZeroInt, ZeroInt) Float
-> Array (ZeroInt, ZeroInt) Float
-> Float
-> IOArray (ZeroInt, ZeroInt) Float
-> IO ()
S.gemm) ((Char
 -> Char
 -> Int
 -> Int
 -> Double
 -> Array (ZeroInt, ZeroInt) Double
 -> Array (ZeroInt, ZeroInt) Double
 -> Double
 -> IOArray (ZeroInt, ZeroInt) Double
 -> IO ())
-> GEMM Double
forall a.
(Char
 -> Char
 -> Int
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> GEMM a
GEMM Char
-> Char
-> Int
-> Int
-> Double
-> Array (ZeroInt, ZeroInt) Double
-> Array (ZeroInt, ZeroInt) Double
-> Double
-> IOArray (ZeroInt, ZeroInt) Double
-> IO ()
D.gemm)


newtype GEMV a = GEMV {GEMV a
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
getGEMV :: Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array ZeroInt a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()}

gemv :: Class.Real a => Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array ZeroInt a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()
gemv :: Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
gemv = GEMV a
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
GEMV a
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
getGEMV (GEMV a
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> GEMV a
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ GEMV Float -> GEMV Double -> GEMV a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Int
 -> Float
 -> Array (ZeroInt, ZeroInt) Float
 -> Array ZeroInt Float
 -> Int
 -> Float
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> GEMV Float
forall a.
(Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> GEMV a
GEMV Char
-> Int
-> Float
-> Array (ZeroInt, ZeroInt) Float
-> Array ZeroInt Float
-> Int
-> Float
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.gemv) ((Char
 -> Int
 -> Double
 -> Array (ZeroInt, ZeroInt) Double
 -> Array ZeroInt Double
 -> Int
 -> Double
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> GEMV Double
forall a.
(Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> GEMV a
GEMV Char
-> Int
-> Double
-> Array (ZeroInt, ZeroInt) Double
-> Array ZeroInt Double
-> Int
-> Double
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.gemv)


newtype GER a = GER {GER a
-> Int
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getGER :: Int -> a -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IOArray (ZeroInt,ZeroInt) a -> IO ()}

ger :: Class.Real a => Int -> a -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IOArray (ZeroInt,ZeroInt) a -> IO ()
ger :: Int
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
ger = GER a
-> Int
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a.
GER a
-> Int
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getGER (GER a
 -> Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> Int
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> GER a
-> Int
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a b. (a -> b) -> a -> b
$ GER Float -> GER Double -> GER a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Int
 -> Float
 -> Array ZeroInt Float
 -> Int
 -> Array ZeroInt Float
 -> Int
 -> IOArray (ZeroInt, ZeroInt) Float
 -> IO ())
-> GER Float
forall a.
(Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> Int
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> GER a
GER Int
-> Float
-> Array ZeroInt Float
-> Int
-> Array ZeroInt Float
-> Int
-> IOArray (ZeroInt, ZeroInt) Float
-> IO ()
S.ger) ((Int
 -> Double
 -> Array ZeroInt Double
 -> Int
 -> Array ZeroInt Double
 -> Int
 -> IOArray (ZeroInt, ZeroInt) Double
 -> IO ())
-> GER Double
forall a.
(Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> Int
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> GER a
GER Int
-> Double
-> Array ZeroInt Double
-> Int
-> Array ZeroInt Double
-> Int
-> IOArray (ZeroInt, ZeroInt) Double
-> IO ()
D.ger)


newtype SBMV a = SBMV {SBMV a
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
getSBMV :: Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array ZeroInt a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()}

sbmv :: Class.Real a => Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array ZeroInt a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()
sbmv :: Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
sbmv = SBMV a
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
SBMV a
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
getSBMV (SBMV a
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> SBMV a
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ SBMV Float -> SBMV Double -> SBMV a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Int
 -> Float
 -> Array (ZeroInt, ZeroInt) Float
 -> Array ZeroInt Float
 -> Int
 -> Float
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> SBMV Float
forall a.
(Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> SBMV a
SBMV Char
-> Int
-> Float
-> Array (ZeroInt, ZeroInt) Float
-> Array ZeroInt Float
-> Int
-> Float
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.sbmv) ((Char
 -> Int
 -> Double
 -> Array (ZeroInt, ZeroInt) Double
 -> Array ZeroInt Double
 -> Int
 -> Double
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> SBMV Double
forall a.
(Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> SBMV a
SBMV Char
-> Int
-> Double
-> Array (ZeroInt, ZeroInt) Double
-> Array ZeroInt Double
-> Int
-> Double
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.sbmv)


newtype SYMV a = SYMV {SYMV a
-> Char
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
getSYMV :: Char -> a -> Array (ZeroInt,ZeroInt) a -> Array ZeroInt a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()}

symv :: Class.Real a => Char -> a -> Array (ZeroInt,ZeroInt) a -> Array ZeroInt a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()
symv :: Char
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
symv = SYMV a
-> Char
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
SYMV a
-> Char
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
getSYMV (SYMV a
 -> Char
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> SYMV a
-> Char
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ SYMV Float -> SYMV Double -> SYMV a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Float
 -> Array (ZeroInt, ZeroInt) Float
 -> Array ZeroInt Float
 -> Int
 -> Float
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> SYMV Float
forall a.
(Char
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> SYMV a
SYMV Char
-> Float
-> Array (ZeroInt, ZeroInt) Float
-> Array ZeroInt Float
-> Int
-> Float
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.symv) ((Char
 -> Double
 -> Array (ZeroInt, ZeroInt) Double
 -> Array ZeroInt Double
 -> Int
 -> Double
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> SYMV Double
forall a.
(Char
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> SYMV a
SYMV Char
-> Double
-> Array (ZeroInt, ZeroInt) Double
-> Array ZeroInt Double
-> Int
-> Double
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.symv)


newtype SYR a = SYR {SYR a
-> Char
-> a
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getSYR :: Char -> a -> Array ZeroInt a -> Int -> IOArray (ZeroInt,ZeroInt) a -> IO ()}

syr :: Class.Real a => Char -> a -> Array ZeroInt a -> Int -> IOArray (ZeroInt,ZeroInt) a -> IO ()
syr :: Char
-> a
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
syr = SYR a
-> Char
-> a
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a.
SYR a
-> Char
-> a
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getSYR (SYR a
 -> Char
 -> a
 -> Array ZeroInt a
 -> Int
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYR a
-> Char
-> a
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a b. (a -> b) -> a -> b
$ SYR Float -> SYR Double -> SYR a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Float
 -> Array ZeroInt Float
 -> Int
 -> IOArray (ZeroInt, ZeroInt) Float
 -> IO ())
-> SYR Float
forall a.
(Char
 -> a
 -> Array ZeroInt a
 -> Int
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYR a
SYR Char
-> Float
-> Array ZeroInt Float
-> Int
-> IOArray (ZeroInt, ZeroInt) Float
-> IO ()
S.syr) ((Char
 -> Double
 -> Array ZeroInt Double
 -> Int
 -> IOArray (ZeroInt, ZeroInt) Double
 -> IO ())
-> SYR Double
forall a.
(Char
 -> a
 -> Array ZeroInt a
 -> Int
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYR a
SYR Char
-> Double
-> Array ZeroInt Double
-> Int
-> IOArray (ZeroInt, ZeroInt) Double
-> IO ()
D.syr)


newtype SYR2 a = SYR2 {SYR2 a
-> Char
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getSYR2 :: Char -> a -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IOArray (ZeroInt,ZeroInt) a -> IO ()}

syr2 :: Class.Real a => Char -> a -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IOArray (ZeroInt,ZeroInt) a -> IO ()
syr2 :: Char
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
syr2 = SYR2 a
-> Char
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a.
SYR2 a
-> Char
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getSYR2 (SYR2 a
 -> Char
 -> a
 -> Array ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> Int
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYR2 a
-> Char
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a b. (a -> b) -> a -> b
$ SYR2 Float -> SYR2 Double -> SYR2 a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Float
 -> Array ZeroInt Float
 -> Int
 -> Array ZeroInt Float
 -> Int
 -> IOArray (ZeroInt, ZeroInt) Float
 -> IO ())
-> SYR2 Float
forall a.
(Char
 -> a
 -> Array ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> Int
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYR2 a
SYR2 Char
-> Float
-> Array ZeroInt Float
-> Int
-> Array ZeroInt Float
-> Int
-> IOArray (ZeroInt, ZeroInt) Float
-> IO ()
S.syr2) ((Char
 -> Double
 -> Array ZeroInt Double
 -> Int
 -> Array ZeroInt Double
 -> Int
 -> IOArray (ZeroInt, ZeroInt) Double
 -> IO ())
-> SYR2 Double
forall a.
(Char
 -> a
 -> Array ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> Int
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYR2 a
SYR2 Char
-> Double
-> Array ZeroInt Double
-> Int
-> Array ZeroInt Double
-> Int
-> IOArray (ZeroInt, ZeroInt) Double
-> IO ()
D.syr2)


newtype SPMV a = SPMV {SPMV a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
getSPMV :: Char -> Int -> a -> Array ZeroInt a -> Array ZeroInt a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()}

spmv :: Class.Real a => Char -> Int -> a -> Array ZeroInt a -> Array ZeroInt a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()
spmv :: Char
-> Int
-> a
-> Array ZeroInt a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
spmv = SPMV a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
SPMV a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
getSPMV (SPMV a
 -> Char
 -> Int
 -> a
 -> Array ZeroInt a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> SPMV a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Array ZeroInt a
-> Int
-> a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ SPMV Float -> SPMV Double -> SPMV a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Int
 -> Float
 -> Array ZeroInt Float
 -> Array ZeroInt Float
 -> Int
 -> Float
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> SPMV Float
forall a.
(Char
 -> Int
 -> a
 -> Array ZeroInt a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> SPMV a
SPMV Char
-> Int
-> Float
-> Array ZeroInt Float
-> Array ZeroInt Float
-> Int
-> Float
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.spmv) ((Char
 -> Int
 -> Double
 -> Array ZeroInt Double
 -> Array ZeroInt Double
 -> Int
 -> Double
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> SPMV Double
forall a.
(Char
 -> Int
 -> a
 -> Array ZeroInt a
 -> Array ZeroInt a
 -> Int
 -> a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> SPMV a
SPMV Char
-> Int
-> Double
-> Array ZeroInt Double
-> Array ZeroInt Double
-> Int
-> Double
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.spmv)


newtype SPR a = SPR {SPR a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> IO ()
getSPR :: Char -> Int -> a -> Array ZeroInt a -> Int -> IOArray ZeroInt a -> IO ()}

spr :: Class.Real a => Char -> Int -> a -> Array ZeroInt a -> Int -> IOArray ZeroInt a -> IO ()
spr :: Char
-> Int -> a -> Array ZeroInt a -> Int -> IOArray ZeroInt a -> IO ()
spr = SPR a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> IO ()
forall a.
SPR a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> IO ()
getSPR (SPR a
 -> Char
 -> Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> IO ())
-> SPR a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> IO ()
forall a b. (a -> b) -> a -> b
$ SPR Float -> SPR Double -> SPR a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Int
 -> Float
 -> Array ZeroInt Float
 -> Int
 -> IOArray ZeroInt Float
 -> IO ())
-> SPR Float
forall a.
(Char
 -> Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> IO ())
-> SPR a
SPR Char
-> Int
-> Float
-> Array ZeroInt Float
-> Int
-> IOArray ZeroInt Float
-> IO ()
S.spr) ((Char
 -> Int
 -> Double
 -> Array ZeroInt Double
 -> Int
 -> IOArray ZeroInt Double
 -> IO ())
-> SPR Double
forall a.
(Char
 -> Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> IO ())
-> SPR a
SPR Char
-> Int
-> Double
-> Array ZeroInt Double
-> Int
-> IOArray ZeroInt Double
-> IO ()
D.spr)


newtype SPR2 a = SPR2 {SPR2 a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> IO ()
getSPR2 :: Char -> Int -> a -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IOArray ZeroInt a -> IO ()}

spr2 :: Class.Real a => Char -> Int -> a -> Array ZeroInt a -> Int -> Array ZeroInt a -> Int -> IOArray ZeroInt a -> IO ()
spr2 :: Char
-> Int
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> IO ()
spr2 = SPR2 a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> IO ()
forall a.
SPR2 a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> IO ()
getSPR2 (SPR2 a
 -> Char
 -> Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> IO ())
-> SPR2 a
-> Char
-> Int
-> a
-> Array ZeroInt a
-> Int
-> Array ZeroInt a
-> Int
-> IOArray ZeroInt a
-> IO ()
forall a b. (a -> b) -> a -> b
$ SPR2 Float -> SPR2 Double -> SPR2 a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Int
 -> Float
 -> Array ZeroInt Float
 -> Int
 -> Array ZeroInt Float
 -> Int
 -> IOArray ZeroInt Float
 -> IO ())
-> SPR2 Float
forall a.
(Char
 -> Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> IO ())
-> SPR2 a
SPR2 Char
-> Int
-> Float
-> Array ZeroInt Float
-> Int
-> Array ZeroInt Float
-> Int
-> IOArray ZeroInt Float
-> IO ()
S.spr2) ((Char
 -> Int
 -> Double
 -> Array ZeroInt Double
 -> Int
 -> Array ZeroInt Double
 -> Int
 -> IOArray ZeroInt Double
 -> IO ())
-> SPR2 Double
forall a.
(Char
 -> Int
 -> a
 -> Array ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> IO ())
-> SPR2 a
SPR2 Char
-> Int
-> Double
-> Array ZeroInt Double
-> Int
-> Array ZeroInt Double
-> Int
-> IOArray ZeroInt Double
-> IO ()
D.spr2)


newtype IAMAX a = IAMAX {IAMAX a -> Int -> Array ZeroInt a -> Int -> IO CInt
getIAMAX :: Int -> Array ZeroInt a -> Int -> IO CInt}

iamax :: Class.Real a => Int -> Array ZeroInt a -> Int -> IO CInt
iamax :: Int -> Array ZeroInt a -> Int -> IO CInt
iamax = IAMAX a -> Int -> Array ZeroInt a -> Int -> IO CInt
forall a. IAMAX a -> Int -> Array ZeroInt a -> Int -> IO CInt
getIAMAX (IAMAX a -> Int -> Array ZeroInt a -> Int -> IO CInt)
-> IAMAX a -> Int -> Array ZeroInt a -> Int -> IO CInt
forall a b. (a -> b) -> a -> b
$ IAMAX Float -> IAMAX Double -> IAMAX a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Int -> Array ZeroInt Float -> Int -> IO CInt) -> IAMAX Float
forall a. (Int -> Array ZeroInt a -> Int -> IO CInt) -> IAMAX a
IAMAX Int -> Array ZeroInt Float -> Int -> IO CInt
S.iamax) ((Int -> Array ZeroInt Double -> Int -> IO CInt) -> IAMAX Double
forall a. (Int -> Array ZeroInt a -> Int -> IO CInt) -> IAMAX a
IAMAX Int -> Array ZeroInt Double -> Int -> IO CInt
D.iamax)


newtype NRM2 a = NRM2 {NRM2 a -> Int -> Array ZeroInt a -> Int -> IO a
getNRM2 :: Int -> Array ZeroInt a -> Int -> IO a}

nrm2 :: Class.Real a => Int -> Array ZeroInt a -> Int -> IO a
nrm2 :: Int -> Array ZeroInt a -> Int -> IO a
nrm2 = NRM2 a -> Int -> Array ZeroInt a -> Int -> IO a
forall a. NRM2 a -> Int -> Array ZeroInt a -> Int -> IO a
getNRM2 (NRM2 a -> Int -> Array ZeroInt a -> Int -> IO a)
-> NRM2 a -> Int -> Array ZeroInt a -> Int -> IO a
forall a b. (a -> b) -> a -> b
$ NRM2 Float -> NRM2 Double -> NRM2 a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Int -> Array ZeroInt Float -> Int -> IO Float) -> NRM2 Float
forall a. (Int -> Array ZeroInt a -> Int -> IO a) -> NRM2 a
NRM2 Int -> Array ZeroInt Float -> Int -> IO Float
S.nrm2) ((Int -> Array ZeroInt Double -> Int -> IO Double) -> NRM2 Double
forall a. (Int -> Array ZeroInt a -> Int -> IO a) -> NRM2 a
NRM2 Int -> Array ZeroInt Double -> Int -> IO Double
D.nrm2)


newtype ROT a = ROT {ROT a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> a
-> a
-> IO ()
getROT :: Int -> IOArray ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> a -> a -> IO ()}

rot :: Class.Real a => Int -> IOArray ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> a -> a -> IO ()
rot :: Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> a
-> a
-> IO ()
rot = ROT a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> a
-> a
-> IO ()
forall a.
ROT a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> a
-> a
-> IO ()
getROT (ROT a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> a
 -> a
 -> IO ())
-> ROT a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> a
-> a
-> IO ()
forall a b. (a -> b) -> a -> b
$ ROT Float -> ROT Double -> ROT a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Int
 -> IOArray ZeroInt Float
 -> Int
 -> IOArray ZeroInt Float
 -> Int
 -> Float
 -> Float
 -> IO ())
-> ROT Float
forall a.
(Int
 -> IOArray ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> a
 -> a
 -> IO ())
-> ROT a
ROT Int
-> IOArray ZeroInt Float
-> Int
-> IOArray ZeroInt Float
-> Int
-> Float
-> Float
-> IO ()
S.rot) ((Int
 -> IOArray ZeroInt Double
 -> Int
 -> IOArray ZeroInt Double
 -> Int
 -> Double
 -> Double
 -> IO ())
-> ROT Double
forall a.
(Int
 -> IOArray ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> a
 -> a
 -> IO ())
-> ROT a
ROT Int
-> IOArray ZeroInt Double
-> Int
-> IOArray ZeroInt Double
-> Int
-> Double
-> Double
-> IO ()
D.rot)


newtype ROTG a = ROTG {ROTG a -> a -> a -> IO (a, a)
getROTG :: a -> a -> IO (a, a)}

rotg :: Class.Real a => a -> a -> IO (a, a)
rotg :: a -> a -> IO (a, a)
rotg = ROTG a -> a -> a -> IO (a, a)
forall a. ROTG a -> a -> a -> IO (a, a)
getROTG (ROTG a -> a -> a -> IO (a, a)) -> ROTG a -> a -> a -> IO (a, a)
forall a b. (a -> b) -> a -> b
$ ROTG Float -> ROTG Double -> ROTG a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Float -> Float -> IO (Float, Float)) -> ROTG Float
forall a. (a -> a -> IO (a, a)) -> ROTG a
ROTG Float -> Float -> IO (Float, Float)
S.rotg) ((Double -> Double -> IO (Double, Double)) -> ROTG Double
forall a. (a -> a -> IO (a, a)) -> ROTG a
ROTG Double -> Double -> IO (Double, Double)
D.rotg)


newtype ROTM a = ROTM {ROTM a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> Array ZeroInt a
-> IO ()
getROTM :: Int -> IOArray ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> Array ZeroInt a -> IO ()}

rotm :: Class.Real a => Int -> IOArray ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> Array ZeroInt a -> IO ()
rotm :: Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> Array ZeroInt a
-> IO ()
rotm = ROTM a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> Array ZeroInt a
-> IO ()
forall a.
ROTM a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> Array ZeroInt a
-> IO ()
getROTM (ROTM a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> IO ())
-> ROTM a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> Array ZeroInt a
-> IO ()
forall a b. (a -> b) -> a -> b
$ ROTM Float -> ROTM Double -> ROTM a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Int
 -> IOArray ZeroInt Float
 -> Int
 -> IOArray ZeroInt Float
 -> Int
 -> Array ZeroInt Float
 -> IO ())
-> ROTM Float
forall a.
(Int
 -> IOArray ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> IO ())
-> ROTM a
ROTM Int
-> IOArray ZeroInt Float
-> Int
-> IOArray ZeroInt Float
-> Int
-> Array ZeroInt Float
-> IO ()
S.rotm) ((Int
 -> IOArray ZeroInt Double
 -> Int
 -> IOArray ZeroInt Double
 -> Int
 -> Array ZeroInt Double
 -> IO ())
-> ROTM Double
forall a.
(Int
 -> IOArray ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> Array ZeroInt a
 -> IO ())
-> ROTM a
ROTM Int
-> IOArray ZeroInt Double
-> Int
-> IOArray ZeroInt Double
-> Int
-> Array ZeroInt Double
-> IO ()
D.rotm)


newtype ROTMG a = ROTMG {ROTMG a -> a -> a -> a -> a -> IO (a, a, a, Array ZeroInt a)
getROTMG :: a -> a -> a -> a -> IO (a, a, a, Array ZeroInt a)}

rotmg :: Class.Real a => a -> a -> a -> a -> IO (a, a, a, Array ZeroInt a)
rotmg :: a -> a -> a -> a -> IO (a, a, a, Array ZeroInt a)
rotmg = ROTMG a -> a -> a -> a -> a -> IO (a, a, a, Array ZeroInt a)
forall a.
ROTMG a -> a -> a -> a -> a -> IO (a, a, a, Array ZeroInt a)
getROTMG (ROTMG a -> a -> a -> a -> a -> IO (a, a, a, Array ZeroInt a))
-> ROTMG a -> a -> a -> a -> a -> IO (a, a, a, Array ZeroInt a)
forall a b. (a -> b) -> a -> b
$ ROTMG Float -> ROTMG Double -> ROTMG a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Float
 -> Float
 -> Float
 -> Float
 -> IO (Float, Float, Float, Array ZeroInt Float))
-> ROTMG Float
forall a.
(a -> a -> a -> a -> IO (a, a, a, Array ZeroInt a)) -> ROTMG a
ROTMG Float
-> Float
-> Float
-> Float
-> IO (Float, Float, Float, Array ZeroInt Float)
S.rotmg) ((Double
 -> Double
 -> Double
 -> Double
 -> IO (Double, Double, Double, Array ZeroInt Double))
-> ROTMG Double
forall a.
(a -> a -> a -> a -> IO (a, a, a, Array ZeroInt a)) -> ROTMG a
ROTMG Double
-> Double
-> Double
-> Double
-> IO (Double, Double, Double, Array ZeroInt Double)
D.rotmg)


newtype SCAL a = SCAL {SCAL a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()
getSCAL :: Int -> a -> IOArray ZeroInt a -> Int -> IO ()}

scal :: Class.Real a => Int -> a -> IOArray ZeroInt a -> Int -> IO ()
scal :: Int -> a -> IOArray ZeroInt a -> Int -> IO ()
scal = SCAL a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()
forall a. SCAL a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()
getSCAL (SCAL a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ())
-> SCAL a -> Int -> a -> IOArray ZeroInt a -> Int -> IO ()
forall a b. (a -> b) -> a -> b
$ SCAL Float -> SCAL Double -> SCAL a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Int -> Float -> IOArray ZeroInt Float -> Int -> IO ())
-> SCAL Float
forall a. (Int -> a -> IOArray ZeroInt a -> Int -> IO ()) -> SCAL a
SCAL Int -> Float -> IOArray ZeroInt Float -> Int -> IO ()
S.scal) ((Int -> Double -> IOArray ZeroInt Double -> Int -> IO ())
-> SCAL Double
forall a. (Int -> a -> IOArray ZeroInt a -> Int -> IO ()) -> SCAL a
SCAL Int -> Double -> IOArray ZeroInt Double -> Int -> IO ()
D.scal)


newtype SWAP a = SWAP {SWAP a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> IO ()
getSWAP :: Int -> IOArray ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> IO ()}

swap :: Class.Real a => Int -> IOArray ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> IO ()
swap :: Int
-> IOArray ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> IO ()
swap = SWAP a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
SWAP a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> IO ()
getSWAP (SWAP a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> SWAP a
-> Int
-> IOArray ZeroInt a
-> Int
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ SWAP Float -> SWAP Double -> SWAP a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Int
 -> IOArray ZeroInt Float
 -> Int
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> SWAP Float
forall a.
(Int
 -> IOArray ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> IO ())
-> SWAP a
SWAP Int
-> IOArray ZeroInt Float
-> Int
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.swap) ((Int
 -> IOArray ZeroInt Double
 -> Int
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> SWAP Double
forall a.
(Int
 -> IOArray ZeroInt a -> Int -> IOArray ZeroInt a -> Int -> IO ())
-> SWAP a
SWAP Int
-> IOArray ZeroInt Double
-> Int
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.swap)


newtype SYMM a = SYMM {SYMM a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getSYMM :: Char -> Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array (ZeroInt,ZeroInt) a -> a -> IOArray (ZeroInt,ZeroInt) a -> IO ()}

symm :: Class.Real a => Char -> Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array (ZeroInt,ZeroInt) a -> a -> IOArray (ZeroInt,ZeroInt) a -> IO ()
symm :: Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
symm = SYMM a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a.
SYMM a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getSYMM (SYMM a
 -> Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYMM a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a b. (a -> b) -> a -> b
$ SYMM Float -> SYMM Double -> SYMM a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Int
 -> Float
 -> Array (ZeroInt, ZeroInt) Float
 -> Array (ZeroInt, ZeroInt) Float
 -> Float
 -> IOArray (ZeroInt, ZeroInt) Float
 -> IO ())
-> SYMM Float
forall a.
(Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYMM a
SYMM Char
-> Char
-> Int
-> Float
-> Array (ZeroInt, ZeroInt) Float
-> Array (ZeroInt, ZeroInt) Float
-> Float
-> IOArray (ZeroInt, ZeroInt) Float
-> IO ()
S.symm) ((Char
 -> Char
 -> Int
 -> Double
 -> Array (ZeroInt, ZeroInt) Double
 -> Array (ZeroInt, ZeroInt) Double
 -> Double
 -> IOArray (ZeroInt, ZeroInt) Double
 -> IO ())
-> SYMM Double
forall a.
(Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYMM a
SYMM Char
-> Char
-> Int
-> Double
-> Array (ZeroInt, ZeroInt) Double
-> Array (ZeroInt, ZeroInt) Double
-> Double
-> IOArray (ZeroInt, ZeroInt) Double
-> IO ()
D.symm)


newtype SYR2K a = SYR2K {SYR2K a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getSYR2K :: Char -> Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array (ZeroInt,ZeroInt) a -> a -> IOArray (ZeroInt,ZeroInt) a -> IO ()}

syr2k :: Class.Real a => Char -> Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> Array (ZeroInt,ZeroInt) a -> a -> IOArray (ZeroInt,ZeroInt) a -> IO ()
syr2k :: Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
syr2k = SYR2K a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a.
SYR2K a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getSYR2K (SYR2K a
 -> Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYR2K a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a b. (a -> b) -> a -> b
$ SYR2K Float -> SYR2K Double -> SYR2K a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Int
 -> Float
 -> Array (ZeroInt, ZeroInt) Float
 -> Array (ZeroInt, ZeroInt) Float
 -> Float
 -> IOArray (ZeroInt, ZeroInt) Float
 -> IO ())
-> SYR2K Float
forall a.
(Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYR2K a
SYR2K Char
-> Char
-> Int
-> Float
-> Array (ZeroInt, ZeroInt) Float
-> Array (ZeroInt, ZeroInt) Float
-> Float
-> IOArray (ZeroInt, ZeroInt) Float
-> IO ()
S.syr2k) ((Char
 -> Char
 -> Int
 -> Double
 -> Array (ZeroInt, ZeroInt) Double
 -> Array (ZeroInt, ZeroInt) Double
 -> Double
 -> IOArray (ZeroInt, ZeroInt) Double
 -> IO ())
-> SYR2K Double
forall a.
(Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYR2K a
SYR2K Char
-> Char
-> Int
-> Double
-> Array (ZeroInt, ZeroInt) Double
-> Array (ZeroInt, ZeroInt) Double
-> Double
-> IOArray (ZeroInt, ZeroInt) Double
-> IO ()
D.syr2k)


newtype SYRK a = SYRK {SYRK a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getSYRK :: Char -> Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> a -> IOArray (ZeroInt,ZeroInt) a -> IO ()}

syrk :: Class.Real a => Char -> Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> a -> IOArray (ZeroInt,ZeroInt) a -> IO ()
syrk :: Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
syrk = SYRK a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a.
SYRK a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getSYRK (SYRK a
 -> Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYRK a
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a b. (a -> b) -> a -> b
$ SYRK Float -> SYRK Double -> SYRK a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Int
 -> Float
 -> Array (ZeroInt, ZeroInt) Float
 -> Float
 -> IOArray (ZeroInt, ZeroInt) Float
 -> IO ())
-> SYRK Float
forall a.
(Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYRK a
SYRK Char
-> Char
-> Int
-> Float
-> Array (ZeroInt, ZeroInt) Float
-> Float
-> IOArray (ZeroInt, ZeroInt) Float
-> IO ()
S.syrk) ((Char
 -> Char
 -> Int
 -> Double
 -> Array (ZeroInt, ZeroInt) Double
 -> Double
 -> IOArray (ZeroInt, ZeroInt) Double
 -> IO ())
-> SYRK Double
forall a.
(Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> SYRK a
SYRK Char
-> Char
-> Int
-> Double
-> Array (ZeroInt, ZeroInt) Double
-> Double
-> IOArray (ZeroInt, ZeroInt) Double
-> IO ()
D.syrk)


newtype TBMV a = TBMV {TBMV a
-> Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTBMV :: Char -> Char -> Char -> Int -> Array (ZeroInt,ZeroInt) a -> IOArray ZeroInt a -> Int -> IO ()}

tbmv :: Class.Real a => Char -> Char -> Char -> Int -> Array (ZeroInt,ZeroInt) a -> IOArray ZeroInt a -> Int -> IO ()
tbmv :: Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
tbmv = TBMV a
-> Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
TBMV a
-> Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTBMV (TBMV a
 -> Char
 -> Char
 -> Char
 -> Int
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TBMV a
-> Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ TBMV Float -> TBMV Double -> TBMV a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Char
 -> Int
 -> Array (ZeroInt, ZeroInt) Float
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> TBMV Float
forall a.
(Char
 -> Char
 -> Char
 -> Int
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TBMV a
TBMV Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) Float
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.tbmv) ((Char
 -> Char
 -> Char
 -> Int
 -> Array (ZeroInt, ZeroInt) Double
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> TBMV Double
forall a.
(Char
 -> Char
 -> Char
 -> Int
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TBMV a
TBMV Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) Double
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.tbmv)


newtype TBSV a = TBSV {TBSV a
-> Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTBSV :: Char -> Char -> Char -> Int -> Array (ZeroInt,ZeroInt) a -> IOArray ZeroInt a -> Int -> IO ()}

tbsv :: Class.Real a => Char -> Char -> Char -> Int -> Array (ZeroInt,ZeroInt) a -> IOArray ZeroInt a -> Int -> IO ()
tbsv :: Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
tbsv = TBSV a
-> Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
TBSV a
-> Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTBSV (TBSV a
 -> Char
 -> Char
 -> Char
 -> Int
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TBSV a
-> Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ TBSV Float -> TBSV Double -> TBSV a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Char
 -> Int
 -> Array (ZeroInt, ZeroInt) Float
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> TBSV Float
forall a.
(Char
 -> Char
 -> Char
 -> Int
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TBSV a
TBSV Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) Float
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.tbsv) ((Char
 -> Char
 -> Char
 -> Int
 -> Array (ZeroInt, ZeroInt) Double
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> TBSV Double
forall a.
(Char
 -> Char
 -> Char
 -> Int
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TBSV a
TBSV Char
-> Char
-> Char
-> Int
-> Array (ZeroInt, ZeroInt) Double
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.tbsv)


newtype TPMV a = TPMV {TPMV a
-> Char
-> Char
-> Char
-> Int
-> Array ZeroInt a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTPMV :: Char -> Char -> Char -> Int -> Array ZeroInt a -> IOArray ZeroInt a -> Int -> IO ()}

tpmv :: Class.Real a => Char -> Char -> Char -> Int -> Array ZeroInt a -> IOArray ZeroInt a -> Int -> IO ()
tpmv :: Char
-> Char
-> Char
-> Int
-> Array ZeroInt a
-> IOArray ZeroInt a
-> Int
-> IO ()
tpmv = TPMV a
-> Char
-> Char
-> Char
-> Int
-> Array ZeroInt a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
TPMV a
-> Char
-> Char
-> Char
-> Int
-> Array ZeroInt a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTPMV (TPMV a
 -> Char
 -> Char
 -> Char
 -> Int
 -> Array ZeroInt a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TPMV a
-> Char
-> Char
-> Char
-> Int
-> Array ZeroInt a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ TPMV Float -> TPMV Double -> TPMV a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Char
 -> Int
 -> Array ZeroInt Float
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> TPMV Float
forall a.
(Char
 -> Char
 -> Char
 -> Int
 -> Array ZeroInt a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TPMV a
TPMV Char
-> Char
-> Char
-> Int
-> Array ZeroInt Float
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.tpmv) ((Char
 -> Char
 -> Char
 -> Int
 -> Array ZeroInt Double
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> TPMV Double
forall a.
(Char
 -> Char
 -> Char
 -> Int
 -> Array ZeroInt a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TPMV a
TPMV Char
-> Char
-> Char
-> Int
-> Array ZeroInt Double
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.tpmv)


newtype TPSV a = TPSV {TPSV a
-> Char
-> Char
-> Char
-> Int
-> Array ZeroInt a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTPSV :: Char -> Char -> Char -> Int -> Array ZeroInt a -> IOArray ZeroInt a -> Int -> IO ()}

tpsv :: Class.Real a => Char -> Char -> Char -> Int -> Array ZeroInt a -> IOArray ZeroInt a -> Int -> IO ()
tpsv :: Char
-> Char
-> Char
-> Int
-> Array ZeroInt a
-> IOArray ZeroInt a
-> Int
-> IO ()
tpsv = TPSV a
-> Char
-> Char
-> Char
-> Int
-> Array ZeroInt a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
TPSV a
-> Char
-> Char
-> Char
-> Int
-> Array ZeroInt a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTPSV (TPSV a
 -> Char
 -> Char
 -> Char
 -> Int
 -> Array ZeroInt a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TPSV a
-> Char
-> Char
-> Char
-> Int
-> Array ZeroInt a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ TPSV Float -> TPSV Double -> TPSV a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Char
 -> Int
 -> Array ZeroInt Float
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> TPSV Float
forall a.
(Char
 -> Char
 -> Char
 -> Int
 -> Array ZeroInt a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TPSV a
TPSV Char
-> Char
-> Char
-> Int
-> Array ZeroInt Float
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.tpsv) ((Char
 -> Char
 -> Char
 -> Int
 -> Array ZeroInt Double
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> TPSV Double
forall a.
(Char
 -> Char
 -> Char
 -> Int
 -> Array ZeroInt a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TPSV a
TPSV Char
-> Char
-> Char
-> Int
-> Array ZeroInt Double
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.tpsv)


newtype TRMM a = TRMM {TRMM a
-> Char
-> Char
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getTRMM :: Char -> Char -> Char -> Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> IOArray (ZeroInt,ZeroInt) a -> IO ()}

trmm :: Class.Real a => Char -> Char -> Char -> Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> IOArray (ZeroInt,ZeroInt) a -> IO ()
trmm :: Char
-> Char
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
trmm = TRMM a
-> Char
-> Char
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a.
TRMM a
-> Char
-> Char
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getTRMM (TRMM a
 -> Char
 -> Char
 -> Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> TRMM a
-> Char
-> Char
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a b. (a -> b) -> a -> b
$ TRMM Float -> TRMM Double -> TRMM a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Char
 -> Char
 -> Int
 -> Float
 -> Array (ZeroInt, ZeroInt) Float
 -> IOArray (ZeroInt, ZeroInt) Float
 -> IO ())
-> TRMM Float
forall a.
(Char
 -> Char
 -> Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> TRMM a
TRMM Char
-> Char
-> Char
-> Char
-> Int
-> Float
-> Array (ZeroInt, ZeroInt) Float
-> IOArray (ZeroInt, ZeroInt) Float
-> IO ()
S.trmm) ((Char
 -> Char
 -> Char
 -> Char
 -> Int
 -> Double
 -> Array (ZeroInt, ZeroInt) Double
 -> IOArray (ZeroInt, ZeroInt) Double
 -> IO ())
-> TRMM Double
forall a.
(Char
 -> Char
 -> Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> TRMM a
TRMM Char
-> Char
-> Char
-> Char
-> Int
-> Double
-> Array (ZeroInt, ZeroInt) Double
-> IOArray (ZeroInt, ZeroInt) Double
-> IO ()
D.trmm)


newtype TRMV a = TRMV {TRMV a
-> Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTRMV :: Char -> Char -> Char -> Array (ZeroInt,ZeroInt) a -> IOArray ZeroInt a -> Int -> IO ()}

trmv :: Class.Real a => Char -> Char -> Char -> Array (ZeroInt,ZeroInt) a -> IOArray ZeroInt a -> Int -> IO ()
trmv :: Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
trmv = TRMV a
-> Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
TRMV a
-> Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTRMV (TRMV a
 -> Char
 -> Char
 -> Char
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TRMV a
-> Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ TRMV Float -> TRMV Double -> TRMV a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Char
 -> Array (ZeroInt, ZeroInt) Float
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> TRMV Float
forall a.
(Char
 -> Char
 -> Char
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TRMV a
TRMV Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) Float
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.trmv) ((Char
 -> Char
 -> Char
 -> Array (ZeroInt, ZeroInt) Double
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> TRMV Double
forall a.
(Char
 -> Char
 -> Char
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TRMV a
TRMV Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) Double
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.trmv)


newtype TRSM a = TRSM {TRSM a
-> Char
-> Char
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getTRSM :: Char -> Char -> Char -> Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> IOArray (ZeroInt,ZeroInt) a -> IO ()}

trsm :: Class.Real a => Char -> Char -> Char -> Char -> Int -> a -> Array (ZeroInt,ZeroInt) a -> IOArray (ZeroInt,ZeroInt) a -> IO ()
trsm :: Char
-> Char
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
trsm = TRSM a
-> Char
-> Char
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a.
TRSM a
-> Char
-> Char
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
getTRSM (TRSM a
 -> Char
 -> Char
 -> Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> TRSM a
-> Char
-> Char
-> Char
-> Char
-> Int
-> a
-> Array (ZeroInt, ZeroInt) a
-> IOArray (ZeroInt, ZeroInt) a
-> IO ()
forall a b. (a -> b) -> a -> b
$ TRSM Float -> TRSM Double -> TRSM a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Char
 -> Char
 -> Int
 -> Float
 -> Array (ZeroInt, ZeroInt) Float
 -> IOArray (ZeroInt, ZeroInt) Float
 -> IO ())
-> TRSM Float
forall a.
(Char
 -> Char
 -> Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> TRSM a
TRSM Char
-> Char
-> Char
-> Char
-> Int
-> Float
-> Array (ZeroInt, ZeroInt) Float
-> IOArray (ZeroInt, ZeroInt) Float
-> IO ()
S.trsm) ((Char
 -> Char
 -> Char
 -> Char
 -> Int
 -> Double
 -> Array (ZeroInt, ZeroInt) Double
 -> IOArray (ZeroInt, ZeroInt) Double
 -> IO ())
-> TRSM Double
forall a.
(Char
 -> Char
 -> Char
 -> Char
 -> Int
 -> a
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray (ZeroInt, ZeroInt) a
 -> IO ())
-> TRSM a
TRSM Char
-> Char
-> Char
-> Char
-> Int
-> Double
-> Array (ZeroInt, ZeroInt) Double
-> IOArray (ZeroInt, ZeroInt) Double
-> IO ()
D.trsm)


newtype TRSV a = TRSV {TRSV a
-> Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTRSV :: Char -> Char -> Char -> Array (ZeroInt,ZeroInt) a -> IOArray ZeroInt a -> Int -> IO ()}

trsv :: Class.Real a => Char -> Char -> Char -> Array (ZeroInt,ZeroInt) a -> IOArray ZeroInt a -> Int -> IO ()
trsv :: Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
trsv = TRSV a
-> Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a.
TRSV a
-> Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
getTRSV (TRSV a
 -> Char
 -> Char
 -> Char
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TRSV a
-> Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) a
-> IOArray ZeroInt a
-> Int
-> IO ()
forall a b. (a -> b) -> a -> b
$ TRSV Float -> TRSV Double -> TRSV a
forall a (f :: * -> *). Real a => f Float -> f Double -> f a
Class.switchReal ((Char
 -> Char
 -> Char
 -> Array (ZeroInt, ZeroInt) Float
 -> IOArray ZeroInt Float
 -> Int
 -> IO ())
-> TRSV Float
forall a.
(Char
 -> Char
 -> Char
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TRSV a
TRSV Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) Float
-> IOArray ZeroInt Float
-> Int
-> IO ()
S.trsv) ((Char
 -> Char
 -> Char
 -> Array (ZeroInt, ZeroInt) Double
 -> IOArray ZeroInt Double
 -> Int
 -> IO ())
-> TRSV Double
forall a.
(Char
 -> Char
 -> Char
 -> Array (ZeroInt, ZeroInt) a
 -> IOArray ZeroInt a
 -> Int
 -> IO ())
-> TRSV a
TRSV Char
-> Char
-> Char
-> Array (ZeroInt, ZeroInt) Double
-> IOArray ZeroInt Double
-> Int
-> IO ()
D.trsv)