casadi-bindings-1.8.2.1: Casadi/Wrappers/Classes/SXFunction.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.SXFunction
(
SXFunction,
SXFunctionClass(..),
sxFunction',
sxFunction'',
sxFunction''',
sxFunction_countNodes,
sxFunction_getAlgorithmSize,
sxFunction_getAtomicInputReal,
sxFunction_getAtomicOperation,
sxFunction_getAtomicOutput,
sxFunction_getFree,
sxFunction_getWorkSize,
sxFunction_grad,
sxFunction_hess,
sxFunction_indexed_one_based,
sxFunction_indexed_zero_based,
sxFunction_jac,
) 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 SXFunction where
show = unsafePerformIO . printableObject_getDescription
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__jac" c_CasADi__SXFunction__jac
:: Ptr SXFunction' -> CInt -> CInt -> CInt -> CInt -> IO (Ptr SXMatrix')
casADi__SXFunction__jac
:: SXFunction -> Int -> Int -> Bool -> Bool -> IO SXMatrix
casADi__SXFunction__jac x0 x1 x2 x3 x4 =
withMarshal x0 $ \x0' ->
withMarshal x1 $ \x1' ->
withMarshal x2 $ \x2' ->
withMarshal x3 $ \x3' ->
withMarshal x4 $ \x4' ->
c_CasADi__SXFunction__jac x0' x1' x2' x3' x4' >>= wrapReturn
-- classy wrapper
{-|
>Jacobian via source code transformation.
>
>See: CasADi::Jacobian for an AD approach
-}
sxFunction_jac :: SXFunctionClass a => a -> Int -> Int -> Bool -> Bool -> IO SXMatrix
sxFunction_jac x = casADi__SXFunction__jac (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__grad" c_CasADi__SXFunction__grad
:: Ptr SXFunction' -> CInt -> CInt -> IO (Ptr SXMatrix')
casADi__SXFunction__grad
:: SXFunction -> Int -> Int -> IO SXMatrix
casADi__SXFunction__grad x0 x1 x2 =
withMarshal x0 $ \x0' ->
withMarshal x1 $ \x1' ->
withMarshal x2 $ \x2' ->
c_CasADi__SXFunction__grad x0' x1' x2' >>= wrapReturn
-- classy wrapper
{-|
>Gradient via source code transformation.
-}
sxFunction_grad :: SXFunctionClass a => a -> Int -> Int -> IO SXMatrix
sxFunction_grad x = casADi__SXFunction__grad (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__hess" c_CasADi__SXFunction__hess
:: Ptr SXFunction' -> CInt -> CInt -> IO (Ptr SXMatrix')
casADi__SXFunction__hess
:: SXFunction -> Int -> Int -> IO SXMatrix
casADi__SXFunction__hess x0 x1 x2 =
withMarshal x0 $ \x0' ->
withMarshal x1 $ \x1' ->
withMarshal x2 $ \x2' ->
c_CasADi__SXFunction__hess x0' x1' x2' >>= wrapReturn
-- classy wrapper
{-|
>Hessian (forward over adjoint) via source code transformation.
-}
sxFunction_hess :: SXFunctionClass a => a -> Int -> Int -> IO SXMatrix
sxFunction_hess x = casADi__SXFunction__hess (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__getAlgorithmSize" c_CasADi__SXFunction__getAlgorithmSize
:: Ptr SXFunction' -> IO CInt
casADi__SXFunction__getAlgorithmSize
:: SXFunction -> IO Int
casADi__SXFunction__getAlgorithmSize x0 =
withMarshal x0 $ \x0' ->
c_CasADi__SXFunction__getAlgorithmSize x0' >>= wrapReturn
-- classy wrapper
{-|
>Get the number of atomic operations.
-}
sxFunction_getAlgorithmSize :: SXFunctionClass a => a -> IO Int
sxFunction_getAlgorithmSize x = casADi__SXFunction__getAlgorithmSize (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__getWorkSize" c_CasADi__SXFunction__getWorkSize
:: Ptr SXFunction' -> IO CInt
casADi__SXFunction__getWorkSize
:: SXFunction -> IO Int
casADi__SXFunction__getWorkSize x0 =
withMarshal x0 $ \x0' ->
c_CasADi__SXFunction__getWorkSize x0' >>= wrapReturn
-- classy wrapper
{-|
>Get the length of the work vector.
-}
sxFunction_getWorkSize :: SXFunctionClass a => a -> IO Int
sxFunction_getWorkSize x = casADi__SXFunction__getWorkSize (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__getAtomicOperation" c_CasADi__SXFunction__getAtomicOperation
:: Ptr SXFunction' -> CInt -> IO CInt
casADi__SXFunction__getAtomicOperation
:: SXFunction -> Int -> IO Int
casADi__SXFunction__getAtomicOperation x0 x1 =
withMarshal x0 $ \x0' ->
withMarshal x1 $ \x1' ->
c_CasADi__SXFunction__getAtomicOperation x0' x1' >>= wrapReturn
-- classy wrapper
{-|
>Get an atomic operation operator index.
-}
sxFunction_getAtomicOperation :: SXFunctionClass a => a -> Int -> IO Int
sxFunction_getAtomicOperation x = casADi__SXFunction__getAtomicOperation (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__getAtomicInputReal" c_CasADi__SXFunction__getAtomicInputReal
:: Ptr SXFunction' -> CInt -> IO CDouble
casADi__SXFunction__getAtomicInputReal
:: SXFunction -> Int -> IO Double
casADi__SXFunction__getAtomicInputReal x0 x1 =
withMarshal x0 $ \x0' ->
withMarshal x1 $ \x1' ->
c_CasADi__SXFunction__getAtomicInputReal x0' x1' >>= wrapReturn
-- classy wrapper
{-|
>Get the floating point output argument of an atomic operation.
-}
sxFunction_getAtomicInputReal :: SXFunctionClass a => a -> Int -> IO Double
sxFunction_getAtomicInputReal x = casADi__SXFunction__getAtomicInputReal (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__getAtomicOutput" c_CasADi__SXFunction__getAtomicOutput
:: Ptr SXFunction' -> CInt -> IO CInt
casADi__SXFunction__getAtomicOutput
:: SXFunction -> Int -> IO Int
casADi__SXFunction__getAtomicOutput x0 x1 =
withMarshal x0 $ \x0' ->
withMarshal x1 $ \x1' ->
c_CasADi__SXFunction__getAtomicOutput x0' x1' >>= wrapReturn
-- classy wrapper
{-|
>Get the (integer) output argument of an atomic operation.
-}
sxFunction_getAtomicOutput :: SXFunctionClass a => a -> Int -> IO Int
sxFunction_getAtomicOutput x = casADi__SXFunction__getAtomicOutput (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__countNodes" c_CasADi__SXFunction__countNodes
:: Ptr SXFunction' -> IO CInt
casADi__SXFunction__countNodes
:: SXFunction -> IO Int
casADi__SXFunction__countNodes x0 =
withMarshal x0 $ \x0' ->
c_CasADi__SXFunction__countNodes x0' >>= wrapReturn
-- classy wrapper
{-|
>Number of nodes in the algorithm.
-}
sxFunction_countNodes :: SXFunctionClass a => a -> IO Int
sxFunction_countNodes x = casADi__SXFunction__countNodes (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__getFree" c_CasADi__SXFunction__getFree
:: Ptr SXFunction' -> IO (Ptr (CppVec (Ptr SX')))
casADi__SXFunction__getFree
:: SXFunction -> IO (Vector SX)
casADi__SXFunction__getFree x0 =
withMarshal x0 $ \x0' ->
c_CasADi__SXFunction__getFree x0' >>= wrapReturn
-- classy wrapper
{-|
>Get all the free variables of the function.
-}
sxFunction_getFree :: SXFunctionClass a => a -> IO (Vector SX)
sxFunction_getFree x = casADi__SXFunction__getFree (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__indexed_one_based" c_CasADi__SXFunction__indexed_one_based
:: Ptr SXFunction' -> CInt -> IO (Ptr SXFunction')
casADi__SXFunction__indexed_one_based
:: SXFunction -> Int -> IO SXFunction
casADi__SXFunction__indexed_one_based x0 x1 =
withMarshal x0 $ \x0' ->
withMarshal x1 $ \x1' ->
c_CasADi__SXFunction__indexed_one_based x0' x1' >>= wrapReturn
-- classy wrapper
sxFunction_indexed_one_based :: SXFunctionClass a => a -> Int -> IO SXFunction
sxFunction_indexed_one_based x = casADi__SXFunction__indexed_one_based (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__indexed_zero_based" c_CasADi__SXFunction__indexed_zero_based
:: Ptr SXFunction' -> CInt -> IO (Ptr SXFunction')
casADi__SXFunction__indexed_zero_based
:: SXFunction -> Int -> IO SXFunction
casADi__SXFunction__indexed_zero_based x0 x1 =
withMarshal x0 $ \x0' ->
withMarshal x1 $ \x1' ->
c_CasADi__SXFunction__indexed_zero_based x0' x1' >>= wrapReturn
-- classy wrapper
sxFunction_indexed_zero_based :: SXFunctionClass a => a -> Int -> IO SXFunction
sxFunction_indexed_zero_based x = casADi__SXFunction__indexed_zero_based (castSXFunction x)
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__SXFunction_TIC" c_CasADi__SXFunction__SXFunction_TIC
:: Ptr MXFunction' -> IO (Ptr SXFunction')
casADi__SXFunction__SXFunction'
:: MXFunction -> IO SXFunction
casADi__SXFunction__SXFunction' x0 =
withMarshal x0 $ \x0' ->
c_CasADi__SXFunction__SXFunction_TIC x0' >>= wrapReturn
-- classy wrapper
sxFunction' :: MXFunction -> IO SXFunction
sxFunction' = casADi__SXFunction__SXFunction'
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__SXFunction_TIC_TIC" c_CasADi__SXFunction__SXFunction_TIC_TIC
:: Ptr FX' -> IO (Ptr SXFunction')
casADi__SXFunction__SXFunction''
:: FX -> IO SXFunction
casADi__SXFunction__SXFunction'' x0 =
withMarshal x0 $ \x0' ->
c_CasADi__SXFunction__SXFunction_TIC_TIC x0' >>= wrapReturn
-- classy wrapper
sxFunction'' :: FX -> IO SXFunction
sxFunction'' = casADi__SXFunction__SXFunction''
-- direct wrapper
foreign import ccall unsafe "CasADi__SXFunction__SXFunction_TIC_TIC_TIC" c_CasADi__SXFunction__SXFunction_TIC_TIC_TIC
:: Ptr (CppVec (Ptr SXMatrix')) -> Ptr (CppVec (Ptr SXMatrix')) -> IO (Ptr SXFunction')
casADi__SXFunction__SXFunction'''
:: Vector SXMatrix -> Vector SXMatrix -> IO SXFunction
casADi__SXFunction__SXFunction''' x0 x1 =
withMarshal x0 $ \x0' ->
withMarshal x1 $ \x1' ->
c_CasADi__SXFunction__SXFunction_TIC_TIC_TIC x0' x1' >>= wrapReturn
-- classy wrapper
sxFunction''' :: Vector SXMatrix -> Vector SXMatrix -> IO SXFunction
sxFunction''' = casADi__SXFunction__SXFunction'''