packages feed

casadi-bindings-1.9.0.0: Casadi/Wrappers/Classes/CVodesIntegrator.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.CVodesIntegrator
       (
         CVodesIntegrator,
         CVodesIntegratorClass(..),
         cvodesIntegrator,
         cvodesIntegrator',
         cvodesIntegrator'',
         cvodesIntegrator_checkNode,
         cvodesIntegrator_creator,
       ) 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 CVodesIntegrator where
  show = unsafePerformIO . printableObject_getDescription
-- direct wrapper
foreign import ccall unsafe "CasADi__CVodesIntegrator__checkNode" c_CasADi__CVodesIntegrator__checkNode
  :: Ptr CVodesIntegrator' -> IO CInt
casADi__CVodesIntegrator__checkNode
  :: CVodesIntegrator -> IO Bool
casADi__CVodesIntegrator__checkNode x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__CVodesIntegrator__checkNode x0' >>= wrapReturn

-- classy wrapper
{-|
>Check if the node is pointing to the right type of object.
-}
cvodesIntegrator_checkNode :: CVodesIntegratorClass a => a -> IO Bool
cvodesIntegrator_checkNode x = casADi__CVodesIntegrator__checkNode (castCVodesIntegrator x)


-- direct wrapper
foreign import ccall unsafe "CasADi__CVodesIntegrator__creator" c_CasADi__CVodesIntegrator__creator
  :: Ptr Function' -> Ptr Function' -> IO (Ptr Integrator')
casADi__CVodesIntegrator__creator
  :: Function -> Function -> IO Integrator
casADi__CVodesIntegrator__creator x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__CVodesIntegrator__creator x0' x1' >>= wrapReturn

-- classy wrapper
cvodesIntegrator_creator :: Function -> Function -> IO Integrator
cvodesIntegrator_creator = casADi__CVodesIntegrator__creator


-- direct wrapper
foreign import ccall unsafe "CasADi__CVodesIntegrator__CVodesIntegrator" c_CasADi__CVodesIntegrator__CVodesIntegrator
  :: IO (Ptr CVodesIntegrator')
casADi__CVodesIntegrator__CVodesIntegrator
  :: IO CVodesIntegrator
casADi__CVodesIntegrator__CVodesIntegrator  =
  c_CasADi__CVodesIntegrator__CVodesIntegrator  >>= wrapReturn

-- classy wrapper
{-|
>>  CasADi::CVodesIntegrator::CVodesIntegrator()
>------------------------------------------------------------------------
>
>Default constructor.
>
>>  CasADi::CVodesIntegrator::CVodesIntegrator(const Function &f, const Function &g=Function())
>------------------------------------------------------------------------
>
>Create an integrator for explicit ODEs.
>
>Parameters:
>-----------
>
>f:  dynamical system
>
>>Input scheme: CasADi::DAEInput (DAE_NUM_IN = 5) [daeIn]
>+-----------+-------+----------------------------+
>| Full name | Short |        Description         |
>+===========+=======+============================+
>| DAE_X     | x     | Differential state .       |
>+-----------+-------+----------------------------+
>| DAE_Z     | z     | Algebraic state .          |
>+-----------+-------+----------------------------+
>| DAE_P     | p     | Parameter .                |
>+-----------+-------+----------------------------+
>| DAE_T     | t     | Explicit time dependence . |
>+-----------+-------+----------------------------+
>
>>Output scheme: CasADi::DAEOutput (DAE_NUM_OUT = 4) [daeOut]
>+-----------+-------+--------------------------------------------+
>| Full name | Short |                Description                 |
>+===========+=======+============================================+
>| DAE_ODE   | ode   | Right hand side of the implicit ODE .      |
>+-----------+-------+--------------------------------------------+
>| DAE_ALG   | alg   | Right hand side of algebraic equations .   |
>+-----------+-------+--------------------------------------------+
>| DAE_QUAD  | quad  | Right hand side of quadratures equations . |
>+-----------+-------+--------------------------------------------+
>
>Parameters:
>-----------
>
>g:  backwards system
>
>>Input scheme: CasADi::RDAEInput (RDAE_NUM_IN = 8) [rdaeIn]
>+-----------+-------+-------------------------------+
>| Full name | Short |          Description          |
>+===========+=======+===============================+
>| RDAE_RX   | rx    | Backward differential state . |
>+-----------+-------+-------------------------------+
>| RDAE_RZ   | rz    | Backward algebraic state .    |
>+-----------+-------+-------------------------------+
>| RDAE_RP   | rp    | Backward parameter vector .   |
>+-----------+-------+-------------------------------+
>| RDAE_X    | x     | Forward differential state .  |
>+-----------+-------+-------------------------------+
>| RDAE_Z    | z     | Forward algebraic state .     |
>+-----------+-------+-------------------------------+
>| RDAE_P    | p     | Parameter vector .            |
>+-----------+-------+-------------------------------+
>| RDAE_T    | t     | Explicit time dependence .    |
>+-----------+-------+-------------------------------+
>
>>Output scheme: CasADi::RDAEOutput (RDAE_NUM_OUT = 4) [rdaeOut]
>+-----------+-------+-------------------------------------------+
>| Full name | Short |                Description                |
>+===========+=======+===========================================+
>| RDAE_ODE  | ode   | Right hand side of ODE. .                 |
>+-----------+-------+-------------------------------------------+
>| RDAE_ALG  | alg   | Right hand side of algebraic equations. . |
>+-----------+-------+-------------------------------------------+
>| RDAE_QUAD | quad  | Right hand side of quadratures. .         |
>+-----------+-------+-------------------------------------------+
-}
cvodesIntegrator :: IO CVodesIntegrator
cvodesIntegrator = casADi__CVodesIntegrator__CVodesIntegrator


-- direct wrapper
foreign import ccall unsafe "CasADi__CVodesIntegrator__CVodesIntegrator_TIC" c_CasADi__CVodesIntegrator__CVodesIntegrator_TIC
  :: Ptr Function' -> Ptr Function' -> IO (Ptr CVodesIntegrator')
casADi__CVodesIntegrator__CVodesIntegrator'
  :: Function -> Function -> IO CVodesIntegrator
casADi__CVodesIntegrator__CVodesIntegrator' x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__CVodesIntegrator__CVodesIntegrator_TIC x0' x1' >>= wrapReturn

-- classy wrapper
cvodesIntegrator' :: Function -> Function -> IO CVodesIntegrator
cvodesIntegrator' = casADi__CVodesIntegrator__CVodesIntegrator'


-- direct wrapper
foreign import ccall unsafe "CasADi__CVodesIntegrator__CVodesIntegrator_TIC_TIC" c_CasADi__CVodesIntegrator__CVodesIntegrator_TIC_TIC
  :: Ptr Function' -> IO (Ptr CVodesIntegrator')
casADi__CVodesIntegrator__CVodesIntegrator''
  :: Function -> IO CVodesIntegrator
casADi__CVodesIntegrator__CVodesIntegrator'' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__CVodesIntegrator__CVodesIntegrator_TIC_TIC x0' >>= wrapReturn

-- classy wrapper
cvodesIntegrator'' :: Function -> IO CVodesIntegrator
cvodesIntegrator'' = casADi__CVodesIntegrator__CVodesIntegrator''