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 {forall a. 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 :: forall a. Real a => 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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a. 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 :: forall a. Real a => 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
forall (f :: * -> *). 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 {forall a. 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 :: forall a. Real a => 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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a. ROTG a -> a -> a -> IO (a, a)
getROTG :: a -> a -> IO (a, a)}
rotg :: Class.Real a => a -> a -> IO (a, a)
rotg :: forall a. Real a => 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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a. 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 :: forall a. Real a => 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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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 {forall a.
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 :: forall a.
Real a =>
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
forall (f :: * -> *). 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)