packages feed

casadi-bindings-1.9.0.0: Casadi/Wrappers/Classes/SCPgen.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.SCPgen
       (
         SCPgen,
         SCPgenClass(..),
         scPgen,
         scPgen',
         scPgen_checkNode,
         scPgen_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 SCPgen where
  show = unsafePerformIO . printableObject_getDescription
-- direct wrapper
foreign import ccall unsafe "CasADi__SCPgen__checkNode" c_CasADi__SCPgen__checkNode
  :: Ptr SCPgen' -> IO CInt
casADi__SCPgen__checkNode
  :: SCPgen -> IO Bool
casADi__SCPgen__checkNode x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__SCPgen__checkNode x0' >>= wrapReturn

-- classy wrapper
{-|
>Check if the node is pointing to the right type of object.
-}
scPgen_checkNode :: SCPgenClass a => a -> IO Bool
scPgen_checkNode x = casADi__SCPgen__checkNode (castSCPgen x)


-- direct wrapper
foreign import ccall unsafe "CasADi__SCPgen__creator" c_CasADi__SCPgen__creator
  :: Ptr Function' -> IO (Ptr NLPSolver')
casADi__SCPgen__creator
  :: Function -> IO NLPSolver
casADi__SCPgen__creator x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__SCPgen__creator x0' >>= wrapReturn

-- classy wrapper
scPgen_creator :: Function -> IO NLPSolver
scPgen_creator = casADi__SCPgen__creator


-- direct wrapper
foreign import ccall unsafe "CasADi__SCPgen__SCPgen" c_CasADi__SCPgen__SCPgen
  :: IO (Ptr SCPgen')
casADi__SCPgen__SCPgen
  :: IO SCPgen
casADi__SCPgen__SCPgen  =
  c_CasADi__SCPgen__SCPgen  >>= wrapReturn

-- classy wrapper
{-|
>>  CasADi::SCPgen::SCPgen()
>------------------------------------------------------------------------
>
>Default constructor.
>
>>  CasADi::SCPgen::SCPgen(const Function &F, const Function &G)
>------------------------------------------------------------------------
>
>[DEPRECATED] Create an NLP solver instance (legacy syntax)
>
>>  CasADi::SCPgen::SCPgen(const Function &nlp)
>------------------------------------------------------------------------
>
>Create an NLP solver instance.
-}
scPgen :: IO SCPgen
scPgen = casADi__SCPgen__SCPgen


-- direct wrapper
foreign import ccall unsafe "CasADi__SCPgen__SCPgen_TIC" c_CasADi__SCPgen__SCPgen_TIC
  :: Ptr Function' -> IO (Ptr SCPgen')
casADi__SCPgen__SCPgen'
  :: Function -> IO SCPgen
casADi__SCPgen__SCPgen' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__SCPgen__SCPgen_TIC x0' >>= wrapReturn

-- classy wrapper
scPgen' :: Function -> IO SCPgen
scPgen' = casADi__SCPgen__SCPgen'