module Numeric.LAPACK.ComfortArray.Miscellaneous where
import qualified Numeric.LAPACK.FFI.Miscellaneous as FFI
import qualified Numeric.Netlib.ComfortArray.Utility as Call
import Foreign.C.Types (CInt, CChar)
import Control.Monad.Trans.Cont (evalContT)
import Control.Monad.IO.Class (liftIO)
chla_transtype ::
Int ->
IO CChar
chla_transtype :: Int -> IO CChar
chla_transtype Int
trans = do
ContT CChar IO CChar -> IO CChar
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT CChar IO CChar -> IO CChar)
-> ContT CChar IO CChar -> IO CChar
forall a b. (a -> b) -> a -> b
$ do
Ptr CInt
transPtr <- Int -> FortranIO CChar (Ptr CInt)
forall r. Int -> FortranIO r (Ptr CInt)
Call.cint Int
trans
IO CChar -> ContT CChar IO CChar
forall a. IO a -> ContT CChar IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CChar -> ContT CChar IO CChar)
-> IO CChar -> ContT CChar IO CChar
forall a b. (a -> b) -> a -> b
$ Ptr CInt -> IO CChar
FFI.chla_transtype Ptr CInt
transPtr
ieeeck ::
Int ->
Float ->
Float ->
IO CInt
ieeeck :: Int -> Float -> Float -> IO CInt
ieeeck Int
ispec Float
zero Float
one = do
ContT CInt IO CInt -> IO CInt
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT CInt IO CInt -> IO CInt) -> ContT CInt IO CInt -> IO CInt
forall a b. (a -> b) -> a -> b
$ do
Ptr CInt
ispecPtr <- Int -> FortranIO CInt (Ptr CInt)
forall r. Int -> FortranIO r (Ptr CInt)
Call.cint Int
ispec
Ptr Float
zeroPtr <- Float -> FortranIO CInt (Ptr Float)
forall r. Float -> FortranIO r (Ptr Float)
Call.float Float
zero
Ptr Float
onePtr <- Float -> FortranIO CInt (Ptr Float)
forall r. Float -> FortranIO r (Ptr Float)
Call.float Float
one
IO CInt -> ContT CInt IO CInt
forall a. IO a -> ContT CInt IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CInt -> ContT CInt IO CInt) -> IO CInt -> ContT CInt IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr CInt -> Ptr Float -> Ptr Float -> IO CInt
FFI.ieeeck Ptr CInt
ispecPtr Ptr Float
zeroPtr Ptr Float
onePtr
ladiag ::
Char ->
IO CInt
ladiag :: Char -> IO CInt
ladiag Char
diag = do
ContT CInt IO CInt -> IO CInt
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT CInt IO CInt -> IO CInt) -> ContT CInt IO CInt -> IO CInt
forall a b. (a -> b) -> a -> b
$ do
Ptr CChar
diagPtr <- Char -> FortranIO CInt (Ptr CChar)
forall r. Char -> FortranIO r (Ptr CChar)
Call.char Char
diag
IO CInt -> ContT CInt IO CInt
forall a. IO a -> ContT CInt IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CInt -> ContT CInt IO CInt) -> IO CInt -> ContT CInt IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr CChar -> IO CInt
FFI.ladiag Ptr CChar
diagPtr
laprec ::
Char ->
IO CInt
laprec :: Char -> IO CInt
laprec Char
prec = do
ContT CInt IO CInt -> IO CInt
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT CInt IO CInt -> IO CInt) -> ContT CInt IO CInt -> IO CInt
forall a b. (a -> b) -> a -> b
$ do
Ptr CChar
precPtr <- Char -> FortranIO CInt (Ptr CChar)
forall r. Char -> FortranIO r (Ptr CChar)
Call.char Char
prec
IO CInt -> ContT CInt IO CInt
forall a. IO a -> ContT CInt IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CInt -> ContT CInt IO CInt) -> IO CInt -> ContT CInt IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr CChar -> IO CInt
FFI.laprec Ptr CChar
precPtr
latrans ::
Char ->
IO CInt
latrans :: Char -> IO CInt
latrans Char
trans = do
ContT CInt IO CInt -> IO CInt
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT CInt IO CInt -> IO CInt) -> ContT CInt IO CInt -> IO CInt
forall a b. (a -> b) -> a -> b
$ do
Ptr CChar
transPtr <- Char -> FortranIO CInt (Ptr CChar)
forall r. Char -> FortranIO r (Ptr CChar)
Call.char Char
trans
IO CInt -> ContT CInt IO CInt
forall a. IO a -> ContT CInt IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CInt -> ContT CInt IO CInt) -> IO CInt -> ContT CInt IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr CChar -> IO CInt
FFI.latrans Ptr CChar
transPtr
lauplo ::
Char ->
IO CInt
lauplo :: Char -> IO CInt
lauplo Char
uplo = do
ContT CInt IO CInt -> IO CInt
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT CInt IO CInt -> IO CInt) -> ContT CInt IO CInt -> IO CInt
forall a b. (a -> b) -> a -> b
$ do
Ptr CChar
uploPtr <- Char -> FortranIO CInt (Ptr CChar)
forall r. Char -> FortranIO r (Ptr CChar)
Call.char Char
uplo
IO CInt -> ContT CInt IO CInt
forall a. IO a -> ContT CInt IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CInt -> ContT CInt IO CInt) -> IO CInt -> ContT CInt IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr CChar -> IO CInt
FFI.lauplo Ptr CChar
uploPtr