packages feed

casadi-bindings-1.9.0.0: Casadi/Wrappers/Classes/LinearSolver.hs

{-# OPTIONS_GHC -Wall #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# Language ForeignFunctionInterface #-}
{-# Language FlexibleInstances #-}
{-# Language MultiParamTypeClasses #-}

module Casadi.Wrappers.Classes.LinearSolver
       (
         LinearSolver,
         LinearSolverClass(..),
         linearSolver,
         linearSolver',
         linearSolver'',
         linearSolver_checkNode,
         linearSolver_prepare,
         linearSolver_prepared,
         linearSolver_solve,
         linearSolver_solve',
         linearSolver_solve'',
         linearSolver_solve''',
       ) where


import Prelude hiding ( Functor )

import Data.Vector ( Vector )
import Foreign.C.Types
import Foreign.Ptr ( Ptr )
import Foreign.ForeignPtr ( newForeignPtr )
import System.IO.Unsafe ( unsafePerformIO ) -- for show instances

import Casadi.Wrappers.Classes.PrintableObject
import Casadi.Wrappers.CToolsInstances ( )
import Casadi.Wrappers.Data
import Casadi.Wrappers.Enums
import Casadi.MarshalTypes ( CppVec, StdString' ) -- StdOstream'
import Casadi.Marshal ( Marshal(..), withMarshal )
import Casadi.WrapReturn ( WrapReturn(..) )

instance Show LinearSolver where
  show = unsafePerformIO . printableObject_getDescription
-- direct wrapper
foreign import ccall unsafe "CasADi__LinearSolver__prepare" c_CasADi__LinearSolver__prepare
  :: Ptr LinearSolver' -> IO ()
casADi__LinearSolver__prepare
  :: LinearSolver -> IO ()
casADi__LinearSolver__prepare x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__LinearSolver__prepare x0' >>= wrapReturn

-- classy wrapper
{-|
>Factorize the matrix.
-}
linearSolver_prepare :: LinearSolverClass a => a -> IO ()
linearSolver_prepare x = casADi__LinearSolver__prepare (castLinearSolver x)


-- direct wrapper
foreign import ccall unsafe "CasADi__LinearSolver__solve" c_CasADi__LinearSolver__solve
  :: Ptr LinearSolver' -> CInt -> IO ()
casADi__LinearSolver__solve
  :: LinearSolver -> Bool -> IO ()
casADi__LinearSolver__solve x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__LinearSolver__solve x0' x1' >>= wrapReturn

-- classy wrapper
{-|
>>  void CasADi::LinearSolver::solve(bool transpose=false)
>------------------------------------------------------------------------
>
>Solve the system of equations, internal vector.
>
>>  void CasADi::LinearSolver::solve(double *x, int nrhs=1, bool transpose=false)
>------------------------------------------------------------------------
>[INTERNAL] 
> Solve the factorized system of equations.
>
>>  MX CasADi::LinearSolver::solve(const MX &A, const MX &B, bool transpose=false)
>------------------------------------------------------------------------
>
>Create a solve node.
>
>>  void CasADi::Function::solve()
>------------------------------------------------------------------------
>
>the same as evaluate()
-}
linearSolver_solve :: LinearSolverClass a => a -> Bool -> IO ()
linearSolver_solve x = casADi__LinearSolver__solve (castLinearSolver x)


-- direct wrapper
foreign import ccall unsafe "CasADi__LinearSolver__solve_TIC" c_CasADi__LinearSolver__solve_TIC
  :: Ptr LinearSolver' -> IO ()
casADi__LinearSolver__solve'
  :: LinearSolver -> IO ()
casADi__LinearSolver__solve' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__LinearSolver__solve_TIC x0' >>= wrapReturn

-- classy wrapper
linearSolver_solve' :: LinearSolverClass a => a -> IO ()
linearSolver_solve' x = casADi__LinearSolver__solve' (castLinearSolver x)


-- direct wrapper
foreign import ccall unsafe "CasADi__LinearSolver__solve_TIC_TIC" c_CasADi__LinearSolver__solve_TIC_TIC
  :: Ptr LinearSolver' -> Ptr MX' -> Ptr MX' -> CInt -> IO (Ptr MX')
casADi__LinearSolver__solve''
  :: LinearSolver -> MX -> MX -> Bool -> IO MX
casADi__LinearSolver__solve'' x0 x1 x2 x3 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  withMarshal x2 $ \x2' ->
  withMarshal x3 $ \x3' ->
  c_CasADi__LinearSolver__solve_TIC_TIC x0' x1' x2' x3' >>= wrapReturn

-- classy wrapper
linearSolver_solve'' :: LinearSolverClass a => a -> MX -> MX -> Bool -> IO MX
linearSolver_solve'' x = casADi__LinearSolver__solve'' (castLinearSolver x)


-- direct wrapper
foreign import ccall unsafe "CasADi__LinearSolver__solve_TIC_TIC_TIC" c_CasADi__LinearSolver__solve_TIC_TIC_TIC
  :: Ptr LinearSolver' -> Ptr MX' -> Ptr MX' -> IO (Ptr MX')
casADi__LinearSolver__solve'''
  :: LinearSolver -> MX -> MX -> IO MX
casADi__LinearSolver__solve''' x0 x1 x2 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  withMarshal x2 $ \x2' ->
  c_CasADi__LinearSolver__solve_TIC_TIC_TIC x0' x1' x2' >>= wrapReturn

-- classy wrapper
linearSolver_solve''' :: LinearSolverClass a => a -> MX -> MX -> IO MX
linearSolver_solve''' x = casADi__LinearSolver__solve''' (castLinearSolver x)


-- direct wrapper
foreign import ccall unsafe "CasADi__LinearSolver__prepared" c_CasADi__LinearSolver__prepared
  :: Ptr LinearSolver' -> IO CInt
casADi__LinearSolver__prepared
  :: LinearSolver -> IO Bool
casADi__LinearSolver__prepared x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__LinearSolver__prepared x0' >>= wrapReturn

-- classy wrapper
{-|
>Check if prepared.
-}
linearSolver_prepared :: LinearSolverClass a => a -> IO Bool
linearSolver_prepared x = casADi__LinearSolver__prepared (castLinearSolver x)


-- direct wrapper
foreign import ccall unsafe "CasADi__LinearSolver__checkNode" c_CasADi__LinearSolver__checkNode
  :: Ptr LinearSolver' -> IO CInt
casADi__LinearSolver__checkNode
  :: LinearSolver -> IO Bool
casADi__LinearSolver__checkNode x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__LinearSolver__checkNode x0' >>= wrapReturn

-- classy wrapper
{-|
>Check if the node is pointing to the right type of object.
-}
linearSolver_checkNode :: LinearSolverClass a => a -> IO Bool
linearSolver_checkNode x = casADi__LinearSolver__checkNode (castLinearSolver x)


-- direct wrapper
foreign import ccall unsafe "CasADi__LinearSolver__LinearSolver" c_CasADi__LinearSolver__LinearSolver
  :: IO (Ptr LinearSolver')
casADi__LinearSolver__LinearSolver
  :: IO LinearSolver
casADi__LinearSolver__LinearSolver  =
  c_CasADi__LinearSolver__LinearSolver  >>= wrapReturn

-- classy wrapper
{-|
>>  CasADi::LinearSolver::LinearSolver()
>------------------------------------------------------------------------
>[INTERNAL] 
>Default (empty) constructor
>
>>  CasADi::LinearSolver::LinearSolver(const Sparsity &sp, int nrhs=1)
>------------------------------------------------------------------------
>
>Create a linear solver given a sparsity pattern (creates a dummy solver
>only)
-}
linearSolver :: IO LinearSolver
linearSolver = casADi__LinearSolver__LinearSolver


-- direct wrapper
foreign import ccall unsafe "CasADi__LinearSolver__LinearSolver_TIC" c_CasADi__LinearSolver__LinearSolver_TIC
  :: Ptr Sparsity' -> CInt -> IO (Ptr LinearSolver')
casADi__LinearSolver__LinearSolver'
  :: Sparsity -> Int -> IO LinearSolver
casADi__LinearSolver__LinearSolver' x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__LinearSolver__LinearSolver_TIC x0' x1' >>= wrapReturn

-- classy wrapper
linearSolver' :: Sparsity -> Int -> IO LinearSolver
linearSolver' = casADi__LinearSolver__LinearSolver'


-- direct wrapper
foreign import ccall unsafe "CasADi__LinearSolver__LinearSolver_TIC_TIC" c_CasADi__LinearSolver__LinearSolver_TIC_TIC
  :: Ptr Sparsity' -> IO (Ptr LinearSolver')
casADi__LinearSolver__LinearSolver''
  :: Sparsity -> IO LinearSolver
casADi__LinearSolver__LinearSolver'' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__LinearSolver__LinearSolver_TIC_TIC x0' >>= wrapReturn

-- classy wrapper
linearSolver'' :: Sparsity -> IO LinearSolver
linearSolver'' = casADi__LinearSolver__LinearSolver''