packages feed

casadi-bindings-1.8.0.0: Casadi/Wrappers/Classes/CustomFunction.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.CustomFunction
       (
         CustomFunction,
         CustomFunctionClass(..),
         customFunction,
         customFunction',
         customFunction''''',
         customFunction_checkNode,
       ) 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.ForeignToolsInstances ( )
import Casadi.Wrappers.Deleters
import Casadi.Wrappers.Data
import Casadi.Wrappers.Enums
import Casadi.MarshalTypes ( CppVec, CppVecVec, CppVecVecVec,
                             StdString', CppBool' ) -- StdOstream'
import Casadi.Marshal ( CornerCase(..), Marshal(..) )
import Casadi.WrapReturn ( WrapReturn(..) )

instance Show CustomFunction where
  show = unsafePerformIO . printableObject_getDescription
-- direct wrapper
foreign import ccall unsafe "CasADi__CustomFunction__checkNode" c_CasADi__CustomFunction__checkNode
  :: Ptr CustomFunction' -> IO (Ptr CppBool')
casADi__CustomFunction__checkNode
  :: CustomFunction -> IO Bool
casADi__CustomFunction__checkNode x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__CustomFunction__checkNode x0' >>= (newForeignPtr c_delete_bool) >>= wrapReturn

-- classy wrapper
{-|
>Check if the pointer points towards a valid object.
-}
customFunction_checkNode :: CustomFunctionClass a => a -> IO Bool
customFunction_checkNode x = casADi__CustomFunction__checkNode (castCustomFunction x)


-- direct wrapper
foreign import ccall unsafe "CasADi__CustomFunction__CustomFunction" c_CasADi__CustomFunction__CustomFunction
  :: IO (Ptr CustomFunction')
casADi__CustomFunction__CustomFunction
  :: IO CustomFunction
casADi__CustomFunction__CustomFunction  =
  c_CasADi__CustomFunction__CustomFunction  >>= (newForeignPtr c_delete_CasADi__CustomFunction) >>= wrapReturn

-- classy wrapper
{-|
>>  CasADi::CustomFunction::CustomFunction(const CustomEvaluate &c_fcn, const std::vector< CRSSparsity > &inputscheme, const std::vector< CRSSparsity > &outputscheme)
>
>>  CasADi::CustomFunction::CustomFunction(const CustomEvaluate &c_fcn, const IOSchemeVector< CRSSparsity > &inputscheme, const std::vector< CRSSparsity > &outputscheme)
>
>>  CasADi::CustomFunction::CustomFunction(const CustomEvaluate &c_fcn, const std::vector< CRSSparsity > &inputscheme, const IOSchemeVector< CRSSparsity > &outputscheme)
>
>>  CasADi::CustomFunction::CustomFunction(const CustomEvaluate &c_fcn, const IOSchemeVector< CRSSparsity > &inputscheme, const IOSchemeVector< CRSSparsity > &outputscheme)
>------------------------------------------------------------------------
>
>Create a function with input/output schemes given.
>
>>  CasADi::CustomFunction::CustomFunction()
>------------------------------------------------------------------------
>
>default constructor
>
>>  CasADi::CustomFunction::CustomFunction(const CustomEvaluate &c_fcn)
>------------------------------------------------------------------------
>
>Create a function, user sets inputs outputs manually.
-}
customFunction :: IO CustomFunction
customFunction = casADi__CustomFunction__CustomFunction


-- direct wrapper
foreign import ccall unsafe "CasADi__CustomFunction__CustomFunction_TIC" c_CasADi__CustomFunction__CustomFunction_TIC
  :: Ptr CustomEvaluate' -> Ptr (CppVec (Ptr CRSSparsity')) -> Ptr (CppVec (Ptr CRSSparsity')) -> IO (Ptr CustomFunction')
casADi__CustomFunction__CustomFunction'
  :: CustomEvaluate -> Vector CRSSparsity -> Vector CRSSparsity -> IO CustomFunction
casADi__CustomFunction__CustomFunction' x0 x1 x2 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  withMarshal x2 $ \x2' ->
  c_CasADi__CustomFunction__CustomFunction_TIC x0' x1' x2' >>= (newForeignPtr c_delete_CasADi__CustomFunction) >>= wrapReturn

-- classy wrapper
customFunction' :: CustomEvaluate -> Vector CRSSparsity -> Vector CRSSparsity -> IO CustomFunction
customFunction' = casADi__CustomFunction__CustomFunction'


-- direct wrapper
foreign import ccall unsafe "CasADi__CustomFunction__CustomFunction_TIC_TIC_TIC_TIC_TIC" c_CasADi__CustomFunction__CustomFunction_TIC_TIC_TIC_TIC_TIC
  :: Ptr CustomEvaluate' -> IO (Ptr CustomFunction')
casADi__CustomFunction__CustomFunction'''''
  :: CustomEvaluate -> IO CustomFunction
casADi__CustomFunction__CustomFunction''''' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__CustomFunction__CustomFunction_TIC_TIC_TIC_TIC_TIC x0' >>= (newForeignPtr c_delete_CasADi__CustomFunction) >>= wrapReturn

-- classy wrapper
customFunction''''' :: CustomEvaluate -> IO CustomFunction
customFunction''''' = casADi__CustomFunction__CustomFunction'''''