diff --git a/Casadi/Core/Classes/CasadiMeta.hs b/Casadi/Core/Classes/CasadiMeta.hs
--- a/Casadi/Core/Classes/CasadiMeta.hs
+++ b/Casadi/Core/Classes/CasadiMeta.hs
@@ -17,6 +17,7 @@
          casadiMeta_getGitDescribe,
          casadiMeta_getGitRevision,
          casadiMeta_getModules,
+         casadiMeta_getPlugins,
          casadiMeta_getVersion,
        ) where
 
@@ -197,6 +198,26 @@
 -- classy wrapper
 casadiMeta_getModules :: IO String
 casadiMeta_getModules = casadi__CasadiMeta__getModules
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__CasadiMeta__getPlugins" c_casadi__CasadiMeta__getPlugins
+  :: Ptr (Ptr StdString) -> IO (Ptr StdString)
+casadi__CasadiMeta__getPlugins
+  :: IO String
+casadi__CasadiMeta__getPlugins  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__CasadiMeta__getPlugins errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+casadiMeta_getPlugins :: IO String
+casadiMeta_getPlugins = casadi__CasadiMeta__getPlugins
 
 
 -- direct wrapper
diff --git a/Casadi/Core/Classes/DMatrix.hs b/Casadi/Core/Classes/DMatrix.hs
--- a/Casadi/Core/Classes/DMatrix.hs
+++ b/Casadi/Core/Classes/DMatrix.hs
@@ -26,8 +26,10 @@
          dmatrix___copysign__,
          dmatrix___div__,
          dmatrix___eq__,
-         dmatrix___ge__,
-         dmatrix___gt__,
+         dmatrix___ge____0,
+         dmatrix___ge____1,
+         dmatrix___gt____0,
+         dmatrix___gt____1,
          dmatrix___le__,
          dmatrix___lt__,
          dmatrix___mldivide__,
@@ -680,45 +682,87 @@
 
 
 -- direct wrapper
-foreign import ccall unsafe "casadi__DMatrix____ge__" c_casadi__DMatrix____ge__
+foreign import ccall unsafe "casadi__DMatrix____ge____0" c_casadi__DMatrix____ge____0
   :: Ptr (Ptr StdString) -> Ptr DMatrix' -> Ptr DMatrix' -> IO (Ptr DMatrix')
-casadi__DMatrix____ge__
+casadi__DMatrix____ge____0
   :: DMatrix -> DMatrix -> IO DMatrix
-casadi__DMatrix____ge__ x0 x1 =
+casadi__DMatrix____ge____0 x0 x1 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_casadi__DMatrix____ge__ errStrPtrP x0' x1'
+    ret <- c_casadi__DMatrix____ge____0 errStrPtrP x0' x1'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
 -- classy wrapper
-dmatrix___ge__ :: DMatrixClass a => a -> DMatrix -> IO DMatrix
-dmatrix___ge__ x = casadi__DMatrix____ge__ (castDMatrix x)
+dmatrix___ge____0 :: DMatrixClass a => a -> DMatrix -> IO DMatrix
+dmatrix___ge____0 x = casadi__DMatrix____ge____0 (castDMatrix x)
 
 
 -- direct wrapper
-foreign import ccall unsafe "casadi__DMatrix____gt__" c_casadi__DMatrix____gt__
+foreign import ccall unsafe "casadi__DMatrix____ge____1" c_casadi__DMatrix____ge____1
   :: Ptr (Ptr StdString) -> Ptr DMatrix' -> Ptr DMatrix' -> IO (Ptr DMatrix')
-casadi__DMatrix____gt__
+casadi__DMatrix____ge____1
   :: DMatrix -> DMatrix -> IO DMatrix
-casadi__DMatrix____gt__ x0 x1 =
+casadi__DMatrix____ge____1 x0 x1 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_casadi__DMatrix____gt__ errStrPtrP x0' x1'
+    ret <- c_casadi__DMatrix____ge____1 errStrPtrP x0' x1'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
 -- classy wrapper
-dmatrix___gt__ :: DMatrixClass a => a -> DMatrix -> IO DMatrix
-dmatrix___gt__ x = casadi__DMatrix____gt__ (castDMatrix x)
+dmatrix___ge____1 :: DMatrixClass a => a -> DMatrix -> IO DMatrix
+dmatrix___ge____1 x = casadi__DMatrix____ge____1 (castDMatrix x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__DMatrix____gt____0" c_casadi__DMatrix____gt____0
+  :: Ptr (Ptr StdString) -> Ptr DMatrix' -> Ptr DMatrix' -> IO (Ptr DMatrix')
+casadi__DMatrix____gt____0
+  :: DMatrix -> DMatrix -> IO DMatrix
+casadi__DMatrix____gt____0 x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__DMatrix____gt____0 errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+dmatrix___gt____0 :: DMatrixClass a => a -> DMatrix -> IO DMatrix
+dmatrix___gt____0 x = casadi__DMatrix____gt____0 (castDMatrix x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__DMatrix____gt____1" c_casadi__DMatrix____gt____1
+  :: Ptr (Ptr StdString) -> Ptr DMatrix' -> Ptr DMatrix' -> IO (Ptr DMatrix')
+casadi__DMatrix____gt____1
+  :: DMatrix -> DMatrix -> IO DMatrix
+casadi__DMatrix____gt____1 x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__DMatrix____gt____1 errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+dmatrix___gt____1 :: DMatrixClass a => a -> DMatrix -> IO DMatrix
+dmatrix___gt____1 x = casadi__DMatrix____gt____1 (castDMatrix x)
 
 
 -- direct wrapper
diff --git a/Casadi/Core/Classes/HomotopyNLPSolver.hs b/Casadi/Core/Classes/HomotopyNLPSolver.hs
deleted file mode 100644
--- a/Casadi/Core/Classes/HomotopyNLPSolver.hs
+++ /dev/null
@@ -1,97 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# Language ForeignFunctionInterface #-}
-{-# Language FlexibleInstances #-}
-{-# Language MultiParamTypeClasses #-}
-
-module Casadi.Core.Classes.HomotopyNLPSolver
-       (
-         HomotopyNLPSolver,
-         HomotopyNLPSolverClass(..),
-         homotopyNLPSolver,
-         homotopyNLPSolver_doc,
-         homotopyNLPSolver_loadPlugin,
-       ) where
-
-
-import Prelude hiding ( Functor )
-
-import Data.Vector ( Vector )
-import Foreign.C.Types
-import Foreign.Marshal ( new, free )
-import Foreign.Storable ( peek )
-import Foreign.Ptr ( Ptr, nullPtr )
-import Foreign.ForeignPtr ( newForeignPtr )
-import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
-
-import Casadi.Core.Classes.PrintableObject
-import Casadi.Internal.CToolsInstances ( )
-import Casadi.Internal.FormatException ( formatException )
-import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
-import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
-import Casadi.Internal.WrapReturn ( WrapReturn(..) )
-import Casadi.Core.Data
-import Casadi.Core.Enums
-
-instance Show HomotopyNLPSolver where
-  show = unsafePerformIO . printableObject_getDescription
--- direct wrapper
-foreign import ccall unsafe "casadi__HomotopyNLPSolver__CONSTRUCTOR" c_casadi__HomotopyNLPSolver__CONSTRUCTOR
-  :: Ptr (Ptr StdString) -> IO (Ptr HomotopyNLPSolver')
-casadi__HomotopyNLPSolver__CONSTRUCTOR
-  :: IO HomotopyNLPSolver
-casadi__HomotopyNLPSolver__CONSTRUCTOR  =
-
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__HomotopyNLPSolver__CONSTRUCTOR errStrPtrP 
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-homotopyNLPSolver :: IO HomotopyNLPSolver
-homotopyNLPSolver = casadi__HomotopyNLPSolver__CONSTRUCTOR
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__HomotopyNLPSolver__doc" c_casadi__HomotopyNLPSolver__doc
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
-casadi__HomotopyNLPSolver__doc
-  :: String -> IO String
-casadi__HomotopyNLPSolver__doc x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__HomotopyNLPSolver__doc errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-homotopyNLPSolver_doc :: String -> IO String
-homotopyNLPSolver_doc = casadi__HomotopyNLPSolver__doc
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__HomotopyNLPSolver__loadPlugin" c_casadi__HomotopyNLPSolver__loadPlugin
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
-casadi__HomotopyNLPSolver__loadPlugin
-  :: String -> IO ()
-casadi__HomotopyNLPSolver__loadPlugin x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__HomotopyNLPSolver__loadPlugin errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-homotopyNLPSolver_loadPlugin :: String -> IO ()
-homotopyNLPSolver_loadPlugin = casadi__HomotopyNLPSolver__loadPlugin
-
diff --git a/Casadi/Core/Classes/HomotopyNlpSolver.hs b/Casadi/Core/Classes/HomotopyNlpSolver.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/Core/Classes/HomotopyNlpSolver.hs
@@ -0,0 +1,97 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# Language ForeignFunctionInterface #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.Core.Classes.HomotopyNlpSolver
+       (
+         HomotopyNlpSolver,
+         HomotopyNlpSolverClass(..),
+         homotopyNlpSolver,
+         homotopyNlpSolver_doc,
+         homotopyNlpSolver_loadPlugin,
+       ) where
+
+
+import Prelude hiding ( Functor )
+
+import Data.Vector ( Vector )
+import Foreign.C.Types
+import Foreign.Marshal ( new, free )
+import Foreign.Storable ( peek )
+import Foreign.Ptr ( Ptr, nullPtr )
+import Foreign.ForeignPtr ( newForeignPtr )
+import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
+
+import Casadi.Core.Classes.PrintableObject
+import Casadi.Internal.CToolsInstances ( )
+import Casadi.Internal.FormatException ( formatException )
+import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
+import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
+import Casadi.Internal.WrapReturn ( WrapReturn(..) )
+import Casadi.Core.Data
+import Casadi.Core.Enums
+
+instance Show HomotopyNlpSolver where
+  show = unsafePerformIO . printableObject_getDescription
+-- direct wrapper
+foreign import ccall unsafe "casadi__HomotopyNlpSolver__CONSTRUCTOR" c_casadi__HomotopyNlpSolver__CONSTRUCTOR
+  :: Ptr (Ptr StdString) -> IO (Ptr HomotopyNlpSolver')
+casadi__HomotopyNlpSolver__CONSTRUCTOR
+  :: IO HomotopyNlpSolver
+casadi__HomotopyNlpSolver__CONSTRUCTOR  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__HomotopyNlpSolver__CONSTRUCTOR errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+homotopyNlpSolver :: IO HomotopyNlpSolver
+homotopyNlpSolver = casadi__HomotopyNlpSolver__CONSTRUCTOR
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__HomotopyNlpSolver__doc" c_casadi__HomotopyNlpSolver__doc
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
+casadi__HomotopyNlpSolver__doc
+  :: String -> IO String
+casadi__HomotopyNlpSolver__doc x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__HomotopyNlpSolver__doc errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+homotopyNlpSolver_doc :: String -> IO String
+homotopyNlpSolver_doc = casadi__HomotopyNlpSolver__doc
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__HomotopyNlpSolver__loadPlugin" c_casadi__HomotopyNlpSolver__loadPlugin
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
+casadi__HomotopyNlpSolver__loadPlugin
+  :: String -> IO ()
+casadi__HomotopyNlpSolver__loadPlugin x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__HomotopyNlpSolver__loadPlugin errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+homotopyNlpSolver_loadPlugin :: String -> IO ()
+homotopyNlpSolver_loadPlugin = casadi__HomotopyNlpSolver__loadPlugin
+
diff --git a/Casadi/Core/Classes/IMatrix.hs b/Casadi/Core/Classes/IMatrix.hs
--- a/Casadi/Core/Classes/IMatrix.hs
+++ b/Casadi/Core/Classes/IMatrix.hs
@@ -23,8 +23,10 @@
          imatrix___copysign__,
          imatrix___div__,
          imatrix___eq__,
-         imatrix___ge__,
-         imatrix___gt__,
+         imatrix___ge____0,
+         imatrix___ge____1,
+         imatrix___gt____0,
+         imatrix___gt____1,
          imatrix___le__,
          imatrix___lt__,
          imatrix___mldivide__,
@@ -615,45 +617,87 @@
 
 
 -- direct wrapper
-foreign import ccall unsafe "casadi__IMatrix____ge__" c_casadi__IMatrix____ge__
+foreign import ccall unsafe "casadi__IMatrix____ge____0" c_casadi__IMatrix____ge____0
   :: Ptr (Ptr StdString) -> Ptr IMatrix' -> Ptr IMatrix' -> IO (Ptr IMatrix')
-casadi__IMatrix____ge__
+casadi__IMatrix____ge____0
   :: IMatrix -> IMatrix -> IO IMatrix
-casadi__IMatrix____ge__ x0 x1 =
+casadi__IMatrix____ge____0 x0 x1 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_casadi__IMatrix____ge__ errStrPtrP x0' x1'
+    ret <- c_casadi__IMatrix____ge____0 errStrPtrP x0' x1'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
 -- classy wrapper
-imatrix___ge__ :: IMatrixClass a => a -> IMatrix -> IO IMatrix
-imatrix___ge__ x = casadi__IMatrix____ge__ (castIMatrix x)
+imatrix___ge____0 :: IMatrixClass a => a -> IMatrix -> IO IMatrix
+imatrix___ge____0 x = casadi__IMatrix____ge____0 (castIMatrix x)
 
 
 -- direct wrapper
-foreign import ccall unsafe "casadi__IMatrix____gt__" c_casadi__IMatrix____gt__
+foreign import ccall unsafe "casadi__IMatrix____ge____1" c_casadi__IMatrix____ge____1
   :: Ptr (Ptr StdString) -> Ptr IMatrix' -> Ptr IMatrix' -> IO (Ptr IMatrix')
-casadi__IMatrix____gt__
+casadi__IMatrix____ge____1
   :: IMatrix -> IMatrix -> IO IMatrix
-casadi__IMatrix____gt__ x0 x1 =
+casadi__IMatrix____ge____1 x0 x1 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_casadi__IMatrix____gt__ errStrPtrP x0' x1'
+    ret <- c_casadi__IMatrix____ge____1 errStrPtrP x0' x1'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
 -- classy wrapper
-imatrix___gt__ :: IMatrixClass a => a -> IMatrix -> IO IMatrix
-imatrix___gt__ x = casadi__IMatrix____gt__ (castIMatrix x)
+imatrix___ge____1 :: IMatrixClass a => a -> IMatrix -> IO IMatrix
+imatrix___ge____1 x = casadi__IMatrix____ge____1 (castIMatrix x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__IMatrix____gt____0" c_casadi__IMatrix____gt____0
+  :: Ptr (Ptr StdString) -> Ptr IMatrix' -> Ptr IMatrix' -> IO (Ptr IMatrix')
+casadi__IMatrix____gt____0
+  :: IMatrix -> IMatrix -> IO IMatrix
+casadi__IMatrix____gt____0 x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__IMatrix____gt____0 errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+imatrix___gt____0 :: IMatrixClass a => a -> IMatrix -> IO IMatrix
+imatrix___gt____0 x = casadi__IMatrix____gt____0 (castIMatrix x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__IMatrix____gt____1" c_casadi__IMatrix____gt____1
+  :: Ptr (Ptr StdString) -> Ptr IMatrix' -> Ptr IMatrix' -> IO (Ptr IMatrix')
+casadi__IMatrix____gt____1
+  :: IMatrix -> IMatrix -> IO IMatrix
+casadi__IMatrix____gt____1 x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__IMatrix____gt____1 errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+imatrix___gt____1 :: IMatrixClass a => a -> IMatrix -> IO IMatrix
+imatrix___gt____1 x = casadi__IMatrix____gt____1 (castIMatrix x)
 
 
 -- direct wrapper
diff --git a/Casadi/Core/Classes/LPSolver.hs b/Casadi/Core/Classes/LPSolver.hs
deleted file mode 100644
--- a/Casadi/Core/Classes/LPSolver.hs
+++ /dev/null
@@ -1,97 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# Language ForeignFunctionInterface #-}
-{-# Language FlexibleInstances #-}
-{-# Language MultiParamTypeClasses #-}
-
-module Casadi.Core.Classes.LPSolver
-       (
-         LPSolver,
-         LPSolverClass(..),
-         lpSolver,
-         lpSolver_doc,
-         lpSolver_loadPlugin,
-       ) where
-
-
-import Prelude hiding ( Functor )
-
-import Data.Vector ( Vector )
-import Foreign.C.Types
-import Foreign.Marshal ( new, free )
-import Foreign.Storable ( peek )
-import Foreign.Ptr ( Ptr, nullPtr )
-import Foreign.ForeignPtr ( newForeignPtr )
-import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
-
-import Casadi.Core.Classes.PrintableObject
-import Casadi.Internal.CToolsInstances ( )
-import Casadi.Internal.FormatException ( formatException )
-import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
-import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
-import Casadi.Internal.WrapReturn ( WrapReturn(..) )
-import Casadi.Core.Data
-import Casadi.Core.Enums
-
-instance Show LPSolver where
-  show = unsafePerformIO . printableObject_getDescription
--- direct wrapper
-foreign import ccall unsafe "casadi__LPSolver__CONSTRUCTOR" c_casadi__LPSolver__CONSTRUCTOR
-  :: Ptr (Ptr StdString) -> IO (Ptr LPSolver')
-casadi__LPSolver__CONSTRUCTOR
-  :: IO LPSolver
-casadi__LPSolver__CONSTRUCTOR  =
-
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__LPSolver__CONSTRUCTOR errStrPtrP 
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-lpSolver :: IO LPSolver
-lpSolver = casadi__LPSolver__CONSTRUCTOR
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__LPSolver__doc" c_casadi__LPSolver__doc
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
-casadi__LPSolver__doc
-  :: String -> IO String
-casadi__LPSolver__doc x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__LPSolver__doc errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-lpSolver_doc :: String -> IO String
-lpSolver_doc = casadi__LPSolver__doc
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__LPSolver__loadPlugin" c_casadi__LPSolver__loadPlugin
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
-casadi__LPSolver__loadPlugin
-  :: String -> IO ()
-casadi__LPSolver__loadPlugin x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__LPSolver__loadPlugin errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-lpSolver_loadPlugin :: String -> IO ()
-lpSolver_loadPlugin = casadi__LPSolver__loadPlugin
-
diff --git a/Casadi/Core/Classes/LpSolver.hs b/Casadi/Core/Classes/LpSolver.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/Core/Classes/LpSolver.hs
@@ -0,0 +1,97 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# Language ForeignFunctionInterface #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.Core.Classes.LpSolver
+       (
+         LpSolver,
+         LpSolverClass(..),
+         lpSolver,
+         lpSolver_doc,
+         lpSolver_loadPlugin,
+       ) where
+
+
+import Prelude hiding ( Functor )
+
+import Data.Vector ( Vector )
+import Foreign.C.Types
+import Foreign.Marshal ( new, free )
+import Foreign.Storable ( peek )
+import Foreign.Ptr ( Ptr, nullPtr )
+import Foreign.ForeignPtr ( newForeignPtr )
+import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
+
+import Casadi.Core.Classes.PrintableObject
+import Casadi.Internal.CToolsInstances ( )
+import Casadi.Internal.FormatException ( formatException )
+import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
+import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
+import Casadi.Internal.WrapReturn ( WrapReturn(..) )
+import Casadi.Core.Data
+import Casadi.Core.Enums
+
+instance Show LpSolver where
+  show = unsafePerformIO . printableObject_getDescription
+-- direct wrapper
+foreign import ccall unsafe "casadi__LpSolver__CONSTRUCTOR" c_casadi__LpSolver__CONSTRUCTOR
+  :: Ptr (Ptr StdString) -> IO (Ptr LpSolver')
+casadi__LpSolver__CONSTRUCTOR
+  :: IO LpSolver
+casadi__LpSolver__CONSTRUCTOR  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__LpSolver__CONSTRUCTOR errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+lpSolver :: IO LpSolver
+lpSolver = casadi__LpSolver__CONSTRUCTOR
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__LpSolver__doc" c_casadi__LpSolver__doc
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
+casadi__LpSolver__doc
+  :: String -> IO String
+casadi__LpSolver__doc x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__LpSolver__doc errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+lpSolver_doc :: String -> IO String
+lpSolver_doc = casadi__LpSolver__doc
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__LpSolver__loadPlugin" c_casadi__LpSolver__loadPlugin
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
+casadi__LpSolver__loadPlugin
+  :: String -> IO ()
+casadi__LpSolver__loadPlugin x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__LpSolver__loadPlugin errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+lpSolver_loadPlugin :: String -> IO ()
+lpSolver_loadPlugin = casadi__LpSolver__loadPlugin
+
diff --git a/Casadi/Core/Classes/NLPSolver.hs b/Casadi/Core/Classes/NLPSolver.hs
deleted file mode 100644
--- a/Casadi/Core/Classes/NLPSolver.hs
+++ /dev/null
@@ -1,331 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# Language ForeignFunctionInterface #-}
-{-# Language FlexibleInstances #-}
-{-# Language MultiParamTypeClasses #-}
-
-module Casadi.Core.Classes.NLPSolver
-       (
-         NLPSolver,
-         NLPSolverClass(..),
-         nlpSolver__0,
-         nlpSolver__1,
-         nlpSolver_doc,
-         nlpSolver_getReducedHessian,
-         nlpSolver_getReportConstraints,
-         nlpSolver_gradF,
-         nlpSolver_hessLag,
-         nlpSolver_jacG,
-         nlpSolver_joinFG,
-         nlpSolver_loadPlugin,
-         nlpSolver_nlp,
-         nlpSolver_reportConstraints,
-         nlpSolver_setOptionsFromFile,
-         nlpSolver_setQPOptions,
-       ) where
-
-
-import Prelude hiding ( Functor )
-
-import Data.Vector ( Vector )
-import Foreign.C.Types
-import Foreign.Marshal ( new, free )
-import Foreign.Storable ( peek )
-import Foreign.Ptr ( Ptr, nullPtr )
-import Foreign.ForeignPtr ( newForeignPtr )
-import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
-
-import Casadi.Core.Classes.PrintableObject
-import Casadi.Internal.CToolsInstances ( )
-import Casadi.Internal.FormatException ( formatException )
-import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
-import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
-import Casadi.Internal.WrapReturn ( WrapReturn(..) )
-import Casadi.Core.Data
-import Casadi.Core.Enums
-
-instance Show NLPSolver where
-  show = unsafePerformIO . printableObject_getDescription
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__CONSTRUCTOR__0" c_casadi__NLPSolver__CONSTRUCTOR__0
-  :: Ptr (Ptr StdString) -> Ptr StdString -> Ptr Function' -> IO (Ptr NLPSolver')
-casadi__NLPSolver__CONSTRUCTOR__0
-  :: String -> Function -> IO NLPSolver
-casadi__NLPSolver__CONSTRUCTOR__0 x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__CONSTRUCTOR__0 errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver__0 :: String -> Function -> IO NLPSolver
-nlpSolver__0 = casadi__NLPSolver__CONSTRUCTOR__0
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__CONSTRUCTOR__1" c_casadi__NLPSolver__CONSTRUCTOR__1
-  :: Ptr (Ptr StdString) -> IO (Ptr NLPSolver')
-casadi__NLPSolver__CONSTRUCTOR__1
-  :: IO NLPSolver
-casadi__NLPSolver__CONSTRUCTOR__1  =
-
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__CONSTRUCTOR__1 errStrPtrP 
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver__1 :: IO NLPSolver
-nlpSolver__1 = casadi__NLPSolver__CONSTRUCTOR__1
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__doc" c_casadi__NLPSolver__doc
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
-casadi__NLPSolver__doc
-  :: String -> IO String
-casadi__NLPSolver__doc x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__doc errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_doc :: String -> IO String
-nlpSolver_doc = casadi__NLPSolver__doc
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__getReducedHessian" c_casadi__NLPSolver__getReducedHessian
-  :: Ptr (Ptr StdString) -> Ptr NLPSolver' -> IO (Ptr DMatrix')
-casadi__NLPSolver__getReducedHessian
-  :: NLPSolver -> IO DMatrix
-casadi__NLPSolver__getReducedHessian x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__getReducedHessian errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_getReducedHessian :: NLPSolverClass a => a -> IO DMatrix
-nlpSolver_getReducedHessian x = casadi__NLPSolver__getReducedHessian (castNLPSolver x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__getReportConstraints" c_casadi__NLPSolver__getReportConstraints
-  :: Ptr (Ptr StdString) -> Ptr NLPSolver' -> IO (Ptr StdString)
-casadi__NLPSolver__getReportConstraints
-  :: NLPSolver -> IO String
-casadi__NLPSolver__getReportConstraints x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__getReportConstraints errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_getReportConstraints :: NLPSolverClass a => a -> IO String
-nlpSolver_getReportConstraints x = casadi__NLPSolver__getReportConstraints (castNLPSolver x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__gradF" c_casadi__NLPSolver__gradF
-  :: Ptr (Ptr StdString) -> Ptr NLPSolver' -> IO (Ptr Function')
-casadi__NLPSolver__gradF
-  :: NLPSolver -> IO Function
-casadi__NLPSolver__gradF x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__gradF errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_gradF :: NLPSolverClass a => a -> IO Function
-nlpSolver_gradF x = casadi__NLPSolver__gradF (castNLPSolver x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__hessLag" c_casadi__NLPSolver__hessLag
-  :: Ptr (Ptr StdString) -> Ptr NLPSolver' -> IO (Ptr Function')
-casadi__NLPSolver__hessLag
-  :: NLPSolver -> IO Function
-casadi__NLPSolver__hessLag x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__hessLag errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_hessLag :: NLPSolverClass a => a -> IO Function
-nlpSolver_hessLag x = casadi__NLPSolver__hessLag (castNLPSolver x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__jacG" c_casadi__NLPSolver__jacG
-  :: Ptr (Ptr StdString) -> Ptr NLPSolver' -> IO (Ptr Function')
-casadi__NLPSolver__jacG
-  :: NLPSolver -> IO Function
-casadi__NLPSolver__jacG x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__jacG errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_jacG :: NLPSolverClass a => a -> IO Function
-nlpSolver_jacG x = casadi__NLPSolver__jacG (castNLPSolver x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__joinFG" c_casadi__NLPSolver__joinFG
-  :: Ptr (Ptr StdString) -> Ptr Function' -> Ptr Function' -> IO (Ptr Function')
-casadi__NLPSolver__joinFG
-  :: Function -> Function -> IO Function
-casadi__NLPSolver__joinFG x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__joinFG errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_joinFG :: Function -> Function -> IO Function
-nlpSolver_joinFG = casadi__NLPSolver__joinFG
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__loadPlugin" c_casadi__NLPSolver__loadPlugin
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
-casadi__NLPSolver__loadPlugin
-  :: String -> IO ()
-casadi__NLPSolver__loadPlugin x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__loadPlugin errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_loadPlugin :: String -> IO ()
-nlpSolver_loadPlugin = casadi__NLPSolver__loadPlugin
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__nlp" c_casadi__NLPSolver__nlp
-  :: Ptr (Ptr StdString) -> Ptr NLPSolver' -> IO (Ptr Function')
-casadi__NLPSolver__nlp
-  :: NLPSolver -> IO Function
-casadi__NLPSolver__nlp x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__nlp errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_nlp :: NLPSolverClass a => a -> IO Function
-nlpSolver_nlp x = casadi__NLPSolver__nlp (castNLPSolver x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__reportConstraints" c_casadi__NLPSolver__reportConstraints
-  :: Ptr (Ptr StdString) -> Ptr NLPSolver' -> IO ()
-casadi__NLPSolver__reportConstraints
-  :: NLPSolver -> IO ()
-casadi__NLPSolver__reportConstraints x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__reportConstraints errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_reportConstraints :: NLPSolverClass a => a -> IO ()
-nlpSolver_reportConstraints x = casadi__NLPSolver__reportConstraints (castNLPSolver x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__setOptionsFromFile" c_casadi__NLPSolver__setOptionsFromFile
-  :: Ptr (Ptr StdString) -> Ptr NLPSolver' -> Ptr StdString -> IO ()
-casadi__NLPSolver__setOptionsFromFile
-  :: NLPSolver -> String -> IO ()
-casadi__NLPSolver__setOptionsFromFile x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__setOptionsFromFile errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_setOptionsFromFile :: NLPSolverClass a => a -> String -> IO ()
-nlpSolver_setOptionsFromFile x = casadi__NLPSolver__setOptionsFromFile (castNLPSolver x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__NLPSolver__setQPOptions" c_casadi__NLPSolver__setQPOptions
-  :: Ptr (Ptr StdString) -> Ptr NLPSolver' -> IO ()
-casadi__NLPSolver__setQPOptions
-  :: NLPSolver -> IO ()
-casadi__NLPSolver__setQPOptions x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__NLPSolver__setQPOptions errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-nlpSolver_setQPOptions :: NLPSolverClass a => a -> IO ()
-nlpSolver_setQPOptions x = casadi__NLPSolver__setQPOptions (castNLPSolver x)
-
diff --git a/Casadi/Core/Classes/NlpSolver.hs b/Casadi/Core/Classes/NlpSolver.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/Core/Classes/NlpSolver.hs
@@ -0,0 +1,331 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# Language ForeignFunctionInterface #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.Core.Classes.NlpSolver
+       (
+         NlpSolver,
+         NlpSolverClass(..),
+         nlpSolver__0,
+         nlpSolver__1,
+         nlpSolver_doc,
+         nlpSolver_getReducedHessian,
+         nlpSolver_getReportConstraints,
+         nlpSolver_gradF,
+         nlpSolver_hessLag,
+         nlpSolver_jacG,
+         nlpSolver_joinFG,
+         nlpSolver_loadPlugin,
+         nlpSolver_nlp,
+         nlpSolver_reportConstraints,
+         nlpSolver_setOptionsFromFile,
+         nlpSolver_setQPOptions,
+       ) where
+
+
+import Prelude hiding ( Functor )
+
+import Data.Vector ( Vector )
+import Foreign.C.Types
+import Foreign.Marshal ( new, free )
+import Foreign.Storable ( peek )
+import Foreign.Ptr ( Ptr, nullPtr )
+import Foreign.ForeignPtr ( newForeignPtr )
+import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
+
+import Casadi.Core.Classes.PrintableObject
+import Casadi.Internal.CToolsInstances ( )
+import Casadi.Internal.FormatException ( formatException )
+import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
+import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
+import Casadi.Internal.WrapReturn ( WrapReturn(..) )
+import Casadi.Core.Data
+import Casadi.Core.Enums
+
+instance Show NlpSolver where
+  show = unsafePerformIO . printableObject_getDescription
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__CONSTRUCTOR__0" c_casadi__NlpSolver__CONSTRUCTOR__0
+  :: Ptr (Ptr StdString) -> Ptr StdString -> Ptr Function' -> IO (Ptr NlpSolver')
+casadi__NlpSolver__CONSTRUCTOR__0
+  :: String -> Function -> IO NlpSolver
+casadi__NlpSolver__CONSTRUCTOR__0 x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__CONSTRUCTOR__0 errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver__0 :: String -> Function -> IO NlpSolver
+nlpSolver__0 = casadi__NlpSolver__CONSTRUCTOR__0
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__CONSTRUCTOR__1" c_casadi__NlpSolver__CONSTRUCTOR__1
+  :: Ptr (Ptr StdString) -> IO (Ptr NlpSolver')
+casadi__NlpSolver__CONSTRUCTOR__1
+  :: IO NlpSolver
+casadi__NlpSolver__CONSTRUCTOR__1  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__CONSTRUCTOR__1 errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver__1 :: IO NlpSolver
+nlpSolver__1 = casadi__NlpSolver__CONSTRUCTOR__1
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__doc" c_casadi__NlpSolver__doc
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
+casadi__NlpSolver__doc
+  :: String -> IO String
+casadi__NlpSolver__doc x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__doc errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_doc :: String -> IO String
+nlpSolver_doc = casadi__NlpSolver__doc
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__getReducedHessian" c_casadi__NlpSolver__getReducedHessian
+  :: Ptr (Ptr StdString) -> Ptr NlpSolver' -> IO (Ptr DMatrix')
+casadi__NlpSolver__getReducedHessian
+  :: NlpSolver -> IO DMatrix
+casadi__NlpSolver__getReducedHessian x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__getReducedHessian errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_getReducedHessian :: NlpSolverClass a => a -> IO DMatrix
+nlpSolver_getReducedHessian x = casadi__NlpSolver__getReducedHessian (castNlpSolver x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__getReportConstraints" c_casadi__NlpSolver__getReportConstraints
+  :: Ptr (Ptr StdString) -> Ptr NlpSolver' -> IO (Ptr StdString)
+casadi__NlpSolver__getReportConstraints
+  :: NlpSolver -> IO String
+casadi__NlpSolver__getReportConstraints x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__getReportConstraints errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_getReportConstraints :: NlpSolverClass a => a -> IO String
+nlpSolver_getReportConstraints x = casadi__NlpSolver__getReportConstraints (castNlpSolver x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__gradF" c_casadi__NlpSolver__gradF
+  :: Ptr (Ptr StdString) -> Ptr NlpSolver' -> IO (Ptr Function')
+casadi__NlpSolver__gradF
+  :: NlpSolver -> IO Function
+casadi__NlpSolver__gradF x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__gradF errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_gradF :: NlpSolverClass a => a -> IO Function
+nlpSolver_gradF x = casadi__NlpSolver__gradF (castNlpSolver x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__hessLag" c_casadi__NlpSolver__hessLag
+  :: Ptr (Ptr StdString) -> Ptr NlpSolver' -> IO (Ptr Function')
+casadi__NlpSolver__hessLag
+  :: NlpSolver -> IO Function
+casadi__NlpSolver__hessLag x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__hessLag errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_hessLag :: NlpSolverClass a => a -> IO Function
+nlpSolver_hessLag x = casadi__NlpSolver__hessLag (castNlpSolver x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__jacG" c_casadi__NlpSolver__jacG
+  :: Ptr (Ptr StdString) -> Ptr NlpSolver' -> IO (Ptr Function')
+casadi__NlpSolver__jacG
+  :: NlpSolver -> IO Function
+casadi__NlpSolver__jacG x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__jacG errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_jacG :: NlpSolverClass a => a -> IO Function
+nlpSolver_jacG x = casadi__NlpSolver__jacG (castNlpSolver x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__joinFG" c_casadi__NlpSolver__joinFG
+  :: Ptr (Ptr StdString) -> Ptr Function' -> Ptr Function' -> IO (Ptr Function')
+casadi__NlpSolver__joinFG
+  :: Function -> Function -> IO Function
+casadi__NlpSolver__joinFG x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__joinFG errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_joinFG :: Function -> Function -> IO Function
+nlpSolver_joinFG = casadi__NlpSolver__joinFG
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__loadPlugin" c_casadi__NlpSolver__loadPlugin
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
+casadi__NlpSolver__loadPlugin
+  :: String -> IO ()
+casadi__NlpSolver__loadPlugin x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__loadPlugin errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_loadPlugin :: String -> IO ()
+nlpSolver_loadPlugin = casadi__NlpSolver__loadPlugin
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__nlp" c_casadi__NlpSolver__nlp
+  :: Ptr (Ptr StdString) -> Ptr NlpSolver' -> IO (Ptr Function')
+casadi__NlpSolver__nlp
+  :: NlpSolver -> IO Function
+casadi__NlpSolver__nlp x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__nlp errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_nlp :: NlpSolverClass a => a -> IO Function
+nlpSolver_nlp x = casadi__NlpSolver__nlp (castNlpSolver x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__reportConstraints" c_casadi__NlpSolver__reportConstraints
+  :: Ptr (Ptr StdString) -> Ptr NlpSolver' -> IO ()
+casadi__NlpSolver__reportConstraints
+  :: NlpSolver -> IO ()
+casadi__NlpSolver__reportConstraints x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__reportConstraints errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_reportConstraints :: NlpSolverClass a => a -> IO ()
+nlpSolver_reportConstraints x = casadi__NlpSolver__reportConstraints (castNlpSolver x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__setOptionsFromFile" c_casadi__NlpSolver__setOptionsFromFile
+  :: Ptr (Ptr StdString) -> Ptr NlpSolver' -> Ptr StdString -> IO ()
+casadi__NlpSolver__setOptionsFromFile
+  :: NlpSolver -> String -> IO ()
+casadi__NlpSolver__setOptionsFromFile x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__setOptionsFromFile errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_setOptionsFromFile :: NlpSolverClass a => a -> String -> IO ()
+nlpSolver_setOptionsFromFile x = casadi__NlpSolver__setOptionsFromFile (castNlpSolver x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__NlpSolver__setQPOptions" c_casadi__NlpSolver__setQPOptions
+  :: Ptr (Ptr StdString) -> Ptr NlpSolver' -> IO ()
+casadi__NlpSolver__setQPOptions
+  :: NlpSolver -> IO ()
+casadi__NlpSolver__setQPOptions x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__NlpSolver__setQPOptions errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+nlpSolver_setQPOptions :: NlpSolverClass a => a -> IO ()
+nlpSolver_setQPOptions x = casadi__NlpSolver__setQPOptions (castNlpSolver x)
+
diff --git a/Casadi/Core/Classes/QCQPSolver.hs b/Casadi/Core/Classes/QCQPSolver.hs
deleted file mode 100644
--- a/Casadi/Core/Classes/QCQPSolver.hs
+++ /dev/null
@@ -1,118 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# Language ForeignFunctionInterface #-}
-{-# Language FlexibleInstances #-}
-{-# Language MultiParamTypeClasses #-}
-
-module Casadi.Core.Classes.QCQPSolver
-       (
-         QCQPSolver,
-         QCQPSolverClass(..),
-         qcqpSolver,
-         qcqpSolver_doc,
-         qcqpSolver_loadPlugin,
-         qcqpSolver_setQPOptions,
-       ) where
-
-
-import Prelude hiding ( Functor )
-
-import Data.Vector ( Vector )
-import Foreign.C.Types
-import Foreign.Marshal ( new, free )
-import Foreign.Storable ( peek )
-import Foreign.Ptr ( Ptr, nullPtr )
-import Foreign.ForeignPtr ( newForeignPtr )
-import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
-
-import Casadi.Core.Classes.PrintableObject
-import Casadi.Internal.CToolsInstances ( )
-import Casadi.Internal.FormatException ( formatException )
-import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
-import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
-import Casadi.Internal.WrapReturn ( WrapReturn(..) )
-import Casadi.Core.Data
-import Casadi.Core.Enums
-
-instance Show QCQPSolver where
-  show = unsafePerformIO . printableObject_getDescription
--- direct wrapper
-foreign import ccall unsafe "casadi__QCQPSolver__CONSTRUCTOR" c_casadi__QCQPSolver__CONSTRUCTOR
-  :: Ptr (Ptr StdString) -> IO (Ptr QCQPSolver')
-casadi__QCQPSolver__CONSTRUCTOR
-  :: IO QCQPSolver
-casadi__QCQPSolver__CONSTRUCTOR  =
-
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__QCQPSolver__CONSTRUCTOR errStrPtrP 
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-qcqpSolver :: IO QCQPSolver
-qcqpSolver = casadi__QCQPSolver__CONSTRUCTOR
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__QCQPSolver__doc" c_casadi__QCQPSolver__doc
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
-casadi__QCQPSolver__doc
-  :: String -> IO String
-casadi__QCQPSolver__doc x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__QCQPSolver__doc errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-qcqpSolver_doc :: String -> IO String
-qcqpSolver_doc = casadi__QCQPSolver__doc
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__QCQPSolver__loadPlugin" c_casadi__QCQPSolver__loadPlugin
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
-casadi__QCQPSolver__loadPlugin
-  :: String -> IO ()
-casadi__QCQPSolver__loadPlugin x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__QCQPSolver__loadPlugin errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-qcqpSolver_loadPlugin :: String -> IO ()
-qcqpSolver_loadPlugin = casadi__QCQPSolver__loadPlugin
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__QCQPSolver__setQPOptions" c_casadi__QCQPSolver__setQPOptions
-  :: Ptr (Ptr StdString) -> Ptr QCQPSolver' -> IO ()
-casadi__QCQPSolver__setQPOptions
-  :: QCQPSolver -> IO ()
-casadi__QCQPSolver__setQPOptions x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__QCQPSolver__setQPOptions errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-qcqpSolver_setQPOptions :: QCQPSolverClass a => a -> IO ()
-qcqpSolver_setQPOptions x = casadi__QCQPSolver__setQPOptions (castQCQPSolver x)
-
diff --git a/Casadi/Core/Classes/QPSolver.hs b/Casadi/Core/Classes/QPSolver.hs
deleted file mode 100644
--- a/Casadi/Core/Classes/QPSolver.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# Language ForeignFunctionInterface #-}
-{-# Language FlexibleInstances #-}
-{-# Language MultiParamTypeClasses #-}
-
-module Casadi.Core.Classes.QPSolver
-       (
-         QPSolver,
-         QPSolverClass(..),
-         qpSolver,
-         qpSolver_doc,
-         qpSolver_generateNativeCode,
-         qpSolver_loadPlugin,
-         qpSolver_setLPOptions,
-       ) where
-
-
-import Prelude hiding ( Functor )
-
-import Data.Vector ( Vector )
-import Foreign.C.Types
-import Foreign.Marshal ( new, free )
-import Foreign.Storable ( peek )
-import Foreign.Ptr ( Ptr, nullPtr )
-import Foreign.ForeignPtr ( newForeignPtr )
-import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
-
-import Casadi.Core.Classes.PrintableObject
-import Casadi.Internal.CToolsInstances ( )
-import Casadi.Internal.FormatException ( formatException )
-import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
-import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
-import Casadi.Internal.WrapReturn ( WrapReturn(..) )
-import Casadi.Core.Data
-import Casadi.Core.Enums
-
-instance Show QPSolver where
-  show = unsafePerformIO . printableObject_getDescription
--- direct wrapper
-foreign import ccall unsafe "casadi__QPSolver__CONSTRUCTOR" c_casadi__QPSolver__CONSTRUCTOR
-  :: Ptr (Ptr StdString) -> IO (Ptr QPSolver')
-casadi__QPSolver__CONSTRUCTOR
-  :: IO QPSolver
-casadi__QPSolver__CONSTRUCTOR  =
-
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__QPSolver__CONSTRUCTOR errStrPtrP 
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-qpSolver :: IO QPSolver
-qpSolver = casadi__QPSolver__CONSTRUCTOR
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__QPSolver__doc" c_casadi__QPSolver__doc
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
-casadi__QPSolver__doc
-  :: String -> IO String
-casadi__QPSolver__doc x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__QPSolver__doc errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-qpSolver_doc :: String -> IO String
-qpSolver_doc = casadi__QPSolver__doc
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__QPSolver__generateNativeCode" c_casadi__QPSolver__generateNativeCode
-  :: Ptr (Ptr StdString) -> Ptr QPSolver' -> Ptr StdString -> IO ()
-casadi__QPSolver__generateNativeCode
-  :: QPSolver -> String -> IO ()
-casadi__QPSolver__generateNativeCode x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__QPSolver__generateNativeCode errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-qpSolver_generateNativeCode :: QPSolverClass a => a -> String -> IO ()
-qpSolver_generateNativeCode x = casadi__QPSolver__generateNativeCode (castQPSolver x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__QPSolver__loadPlugin" c_casadi__QPSolver__loadPlugin
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
-casadi__QPSolver__loadPlugin
-  :: String -> IO ()
-casadi__QPSolver__loadPlugin x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__QPSolver__loadPlugin errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-qpSolver_loadPlugin :: String -> IO ()
-qpSolver_loadPlugin = casadi__QPSolver__loadPlugin
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__QPSolver__setLPOptions" c_casadi__QPSolver__setLPOptions
-  :: Ptr (Ptr StdString) -> Ptr QPSolver' -> IO ()
-casadi__QPSolver__setLPOptions
-  :: QPSolver -> IO ()
-casadi__QPSolver__setLPOptions x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__QPSolver__setLPOptions errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-qpSolver_setLPOptions :: QPSolverClass a => a -> IO ()
-qpSolver_setLPOptions x = casadi__QPSolver__setLPOptions (castQPSolver x)
-
diff --git a/Casadi/Core/Classes/QcqpSolver.hs b/Casadi/Core/Classes/QcqpSolver.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/Core/Classes/QcqpSolver.hs
@@ -0,0 +1,118 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# Language ForeignFunctionInterface #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.Core.Classes.QcqpSolver
+       (
+         QcqpSolver,
+         QcqpSolverClass(..),
+         qcqpSolver,
+         qcqpSolver_doc,
+         qcqpSolver_loadPlugin,
+         qcqpSolver_setQPOptions,
+       ) where
+
+
+import Prelude hiding ( Functor )
+
+import Data.Vector ( Vector )
+import Foreign.C.Types
+import Foreign.Marshal ( new, free )
+import Foreign.Storable ( peek )
+import Foreign.Ptr ( Ptr, nullPtr )
+import Foreign.ForeignPtr ( newForeignPtr )
+import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
+
+import Casadi.Core.Classes.PrintableObject
+import Casadi.Internal.CToolsInstances ( )
+import Casadi.Internal.FormatException ( formatException )
+import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
+import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
+import Casadi.Internal.WrapReturn ( WrapReturn(..) )
+import Casadi.Core.Data
+import Casadi.Core.Enums
+
+instance Show QcqpSolver where
+  show = unsafePerformIO . printableObject_getDescription
+-- direct wrapper
+foreign import ccall unsafe "casadi__QcqpSolver__CONSTRUCTOR" c_casadi__QcqpSolver__CONSTRUCTOR
+  :: Ptr (Ptr StdString) -> IO (Ptr QcqpSolver')
+casadi__QcqpSolver__CONSTRUCTOR
+  :: IO QcqpSolver
+casadi__QcqpSolver__CONSTRUCTOR  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__QcqpSolver__CONSTRUCTOR errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+qcqpSolver :: IO QcqpSolver
+qcqpSolver = casadi__QcqpSolver__CONSTRUCTOR
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__QcqpSolver__doc" c_casadi__QcqpSolver__doc
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
+casadi__QcqpSolver__doc
+  :: String -> IO String
+casadi__QcqpSolver__doc x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__QcqpSolver__doc errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+qcqpSolver_doc :: String -> IO String
+qcqpSolver_doc = casadi__QcqpSolver__doc
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__QcqpSolver__loadPlugin" c_casadi__QcqpSolver__loadPlugin
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
+casadi__QcqpSolver__loadPlugin
+  :: String -> IO ()
+casadi__QcqpSolver__loadPlugin x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__QcqpSolver__loadPlugin errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+qcqpSolver_loadPlugin :: String -> IO ()
+qcqpSolver_loadPlugin = casadi__QcqpSolver__loadPlugin
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__QcqpSolver__setQPOptions" c_casadi__QcqpSolver__setQPOptions
+  :: Ptr (Ptr StdString) -> Ptr QcqpSolver' -> IO ()
+casadi__QcqpSolver__setQPOptions
+  :: QcqpSolver -> IO ()
+casadi__QcqpSolver__setQPOptions x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__QcqpSolver__setQPOptions errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+qcqpSolver_setQPOptions :: QcqpSolverClass a => a -> IO ()
+qcqpSolver_setQPOptions x = casadi__QcqpSolver__setQPOptions (castQcqpSolver x)
+
diff --git a/Casadi/Core/Classes/QpSolver.hs b/Casadi/Core/Classes/QpSolver.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/Core/Classes/QpSolver.hs
@@ -0,0 +1,140 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# Language ForeignFunctionInterface #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.Core.Classes.QpSolver
+       (
+         QpSolver,
+         QpSolverClass(..),
+         qpSolver,
+         qpSolver_doc,
+         qpSolver_generateNativeCode,
+         qpSolver_loadPlugin,
+         qpSolver_setLPOptions,
+       ) where
+
+
+import Prelude hiding ( Functor )
+
+import Data.Vector ( Vector )
+import Foreign.C.Types
+import Foreign.Marshal ( new, free )
+import Foreign.Storable ( peek )
+import Foreign.Ptr ( Ptr, nullPtr )
+import Foreign.ForeignPtr ( newForeignPtr )
+import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
+
+import Casadi.Core.Classes.PrintableObject
+import Casadi.Internal.CToolsInstances ( )
+import Casadi.Internal.FormatException ( formatException )
+import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
+import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
+import Casadi.Internal.WrapReturn ( WrapReturn(..) )
+import Casadi.Core.Data
+import Casadi.Core.Enums
+
+instance Show QpSolver where
+  show = unsafePerformIO . printableObject_getDescription
+-- direct wrapper
+foreign import ccall unsafe "casadi__QpSolver__CONSTRUCTOR" c_casadi__QpSolver__CONSTRUCTOR
+  :: Ptr (Ptr StdString) -> IO (Ptr QpSolver')
+casadi__QpSolver__CONSTRUCTOR
+  :: IO QpSolver
+casadi__QpSolver__CONSTRUCTOR  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__QpSolver__CONSTRUCTOR errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+qpSolver :: IO QpSolver
+qpSolver = casadi__QpSolver__CONSTRUCTOR
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__QpSolver__doc" c_casadi__QpSolver__doc
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
+casadi__QpSolver__doc
+  :: String -> IO String
+casadi__QpSolver__doc x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__QpSolver__doc errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+qpSolver_doc :: String -> IO String
+qpSolver_doc = casadi__QpSolver__doc
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__QpSolver__generateNativeCode" c_casadi__QpSolver__generateNativeCode
+  :: Ptr (Ptr StdString) -> Ptr QpSolver' -> Ptr StdString -> IO ()
+casadi__QpSolver__generateNativeCode
+  :: QpSolver -> String -> IO ()
+casadi__QpSolver__generateNativeCode x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__QpSolver__generateNativeCode errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+qpSolver_generateNativeCode :: QpSolverClass a => a -> String -> IO ()
+qpSolver_generateNativeCode x = casadi__QpSolver__generateNativeCode (castQpSolver x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__QpSolver__loadPlugin" c_casadi__QpSolver__loadPlugin
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
+casadi__QpSolver__loadPlugin
+  :: String -> IO ()
+casadi__QpSolver__loadPlugin x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__QpSolver__loadPlugin errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+qpSolver_loadPlugin :: String -> IO ()
+qpSolver_loadPlugin = casadi__QpSolver__loadPlugin
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__QpSolver__setLPOptions" c_casadi__QpSolver__setLPOptions
+  :: Ptr (Ptr StdString) -> Ptr QpSolver' -> IO ()
+casadi__QpSolver__setLPOptions
+  :: QpSolver -> IO ()
+casadi__QpSolver__setLPOptions x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__QpSolver__setLPOptions errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+qpSolver_setLPOptions :: QpSolverClass a => a -> IO ()
+qpSolver_setLPOptions x = casadi__QpSolver__setLPOptions (castQpSolver x)
+
diff --git a/Casadi/Core/Classes/SDPSolver.hs b/Casadi/Core/Classes/SDPSolver.hs
deleted file mode 100644
--- a/Casadi/Core/Classes/SDPSolver.hs
+++ /dev/null
@@ -1,118 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# Language ForeignFunctionInterface #-}
-{-# Language FlexibleInstances #-}
-{-# Language MultiParamTypeClasses #-}
-
-module Casadi.Core.Classes.SDPSolver
-       (
-         SDPSolver,
-         SDPSolverClass(..),
-         sdpSolver,
-         sdpSolver_doc,
-         sdpSolver_loadPlugin,
-         sdpSolver_setSOCPOptions,
-       ) where
-
-
-import Prelude hiding ( Functor )
-
-import Data.Vector ( Vector )
-import Foreign.C.Types
-import Foreign.Marshal ( new, free )
-import Foreign.Storable ( peek )
-import Foreign.Ptr ( Ptr, nullPtr )
-import Foreign.ForeignPtr ( newForeignPtr )
-import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
-
-import Casadi.Core.Classes.PrintableObject
-import Casadi.Internal.CToolsInstances ( )
-import Casadi.Internal.FormatException ( formatException )
-import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
-import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
-import Casadi.Internal.WrapReturn ( WrapReturn(..) )
-import Casadi.Core.Data
-import Casadi.Core.Enums
-
-instance Show SDPSolver where
-  show = unsafePerformIO . printableObject_getDescription
--- direct wrapper
-foreign import ccall unsafe "casadi__SDPSolver__CONSTRUCTOR" c_casadi__SDPSolver__CONSTRUCTOR
-  :: Ptr (Ptr StdString) -> IO (Ptr SDPSolver')
-casadi__SDPSolver__CONSTRUCTOR
-  :: IO SDPSolver
-casadi__SDPSolver__CONSTRUCTOR  =
-
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SDPSolver__CONSTRUCTOR errStrPtrP 
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sdpSolver :: IO SDPSolver
-sdpSolver = casadi__SDPSolver__CONSTRUCTOR
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__SDPSolver__doc" c_casadi__SDPSolver__doc
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
-casadi__SDPSolver__doc
-  :: String -> IO String
-casadi__SDPSolver__doc x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SDPSolver__doc errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sdpSolver_doc :: String -> IO String
-sdpSolver_doc = casadi__SDPSolver__doc
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__SDPSolver__loadPlugin" c_casadi__SDPSolver__loadPlugin
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
-casadi__SDPSolver__loadPlugin
-  :: String -> IO ()
-casadi__SDPSolver__loadPlugin x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SDPSolver__loadPlugin errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sdpSolver_loadPlugin :: String -> IO ()
-sdpSolver_loadPlugin = casadi__SDPSolver__loadPlugin
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__SDPSolver__setSOCPOptions" c_casadi__SDPSolver__setSOCPOptions
-  :: Ptr (Ptr StdString) -> Ptr SDPSolver' -> IO ()
-casadi__SDPSolver__setSOCPOptions
-  :: SDPSolver -> IO ()
-casadi__SDPSolver__setSOCPOptions x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SDPSolver__setSOCPOptions errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sdpSolver_setSOCPOptions :: SDPSolverClass a => a -> IO ()
-sdpSolver_setSOCPOptions x = casadi__SDPSolver__setSOCPOptions (castSDPSolver x)
-
diff --git a/Casadi/Core/Classes/SDQPSolver.hs b/Casadi/Core/Classes/SDQPSolver.hs
deleted file mode 100644
--- a/Casadi/Core/Classes/SDQPSolver.hs
+++ /dev/null
@@ -1,118 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# Language ForeignFunctionInterface #-}
-{-# Language FlexibleInstances #-}
-{-# Language MultiParamTypeClasses #-}
-
-module Casadi.Core.Classes.SDQPSolver
-       (
-         SDQPSolver,
-         SDQPSolverClass(..),
-         sdqpSolver,
-         sdqpSolver_doc,
-         sdqpSolver_loadPlugin,
-         sdqpSolver_setSOCQPOptions,
-       ) where
-
-
-import Prelude hiding ( Functor )
-
-import Data.Vector ( Vector )
-import Foreign.C.Types
-import Foreign.Marshal ( new, free )
-import Foreign.Storable ( peek )
-import Foreign.Ptr ( Ptr, nullPtr )
-import Foreign.ForeignPtr ( newForeignPtr )
-import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
-
-import Casadi.Core.Classes.PrintableObject
-import Casadi.Internal.CToolsInstances ( )
-import Casadi.Internal.FormatException ( formatException )
-import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
-import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
-import Casadi.Internal.WrapReturn ( WrapReturn(..) )
-import Casadi.Core.Data
-import Casadi.Core.Enums
-
-instance Show SDQPSolver where
-  show = unsafePerformIO . printableObject_getDescription
--- direct wrapper
-foreign import ccall unsafe "casadi__SDQPSolver__CONSTRUCTOR" c_casadi__SDQPSolver__CONSTRUCTOR
-  :: Ptr (Ptr StdString) -> IO (Ptr SDQPSolver')
-casadi__SDQPSolver__CONSTRUCTOR
-  :: IO SDQPSolver
-casadi__SDQPSolver__CONSTRUCTOR  =
-
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SDQPSolver__CONSTRUCTOR errStrPtrP 
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sdqpSolver :: IO SDQPSolver
-sdqpSolver = casadi__SDQPSolver__CONSTRUCTOR
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__SDQPSolver__doc" c_casadi__SDQPSolver__doc
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
-casadi__SDQPSolver__doc
-  :: String -> IO String
-casadi__SDQPSolver__doc x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SDQPSolver__doc errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sdqpSolver_doc :: String -> IO String
-sdqpSolver_doc = casadi__SDQPSolver__doc
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__SDQPSolver__loadPlugin" c_casadi__SDQPSolver__loadPlugin
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
-casadi__SDQPSolver__loadPlugin
-  :: String -> IO ()
-casadi__SDQPSolver__loadPlugin x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SDQPSolver__loadPlugin errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sdqpSolver_loadPlugin :: String -> IO ()
-sdqpSolver_loadPlugin = casadi__SDQPSolver__loadPlugin
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__SDQPSolver__setSOCQPOptions" c_casadi__SDQPSolver__setSOCQPOptions
-  :: Ptr (Ptr StdString) -> Ptr SDQPSolver' -> IO ()
-casadi__SDQPSolver__setSOCQPOptions
-  :: SDQPSolver -> IO ()
-casadi__SDQPSolver__setSOCQPOptions x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SDQPSolver__setSOCQPOptions errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sdqpSolver_setSOCQPOptions :: SDQPSolverClass a => a -> IO ()
-sdqpSolver_setSOCQPOptions x = casadi__SDQPSolver__setSOCQPOptions (castSDQPSolver x)
-
diff --git a/Casadi/Core/Classes/SOCPSolver.hs b/Casadi/Core/Classes/SOCPSolver.hs
deleted file mode 100644
--- a/Casadi/Core/Classes/SOCPSolver.hs
+++ /dev/null
@@ -1,97 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# Language ForeignFunctionInterface #-}
-{-# Language FlexibleInstances #-}
-{-# Language MultiParamTypeClasses #-}
-
-module Casadi.Core.Classes.SOCPSolver
-       (
-         SOCPSolver,
-         SOCPSolverClass(..),
-         socpSolver,
-         socpSolver_doc,
-         socpSolver_loadPlugin,
-       ) where
-
-
-import Prelude hiding ( Functor )
-
-import Data.Vector ( Vector )
-import Foreign.C.Types
-import Foreign.Marshal ( new, free )
-import Foreign.Storable ( peek )
-import Foreign.Ptr ( Ptr, nullPtr )
-import Foreign.ForeignPtr ( newForeignPtr )
-import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
-
-import Casadi.Core.Classes.PrintableObject
-import Casadi.Internal.CToolsInstances ( )
-import Casadi.Internal.FormatException ( formatException )
-import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
-import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
-import Casadi.Internal.WrapReturn ( WrapReturn(..) )
-import Casadi.Core.Data
-import Casadi.Core.Enums
-
-instance Show SOCPSolver where
-  show = unsafePerformIO . printableObject_getDescription
--- direct wrapper
-foreign import ccall unsafe "casadi__SOCPSolver__CONSTRUCTOR" c_casadi__SOCPSolver__CONSTRUCTOR
-  :: Ptr (Ptr StdString) -> IO (Ptr SOCPSolver')
-casadi__SOCPSolver__CONSTRUCTOR
-  :: IO SOCPSolver
-casadi__SOCPSolver__CONSTRUCTOR  =
-
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SOCPSolver__CONSTRUCTOR errStrPtrP 
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-socpSolver :: IO SOCPSolver
-socpSolver = casadi__SOCPSolver__CONSTRUCTOR
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__SOCPSolver__doc" c_casadi__SOCPSolver__doc
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
-casadi__SOCPSolver__doc
-  :: String -> IO String
-casadi__SOCPSolver__doc x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SOCPSolver__doc errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-socpSolver_doc :: String -> IO String
-socpSolver_doc = casadi__SOCPSolver__doc
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__SOCPSolver__loadPlugin" c_casadi__SOCPSolver__loadPlugin
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
-casadi__SOCPSolver__loadPlugin
-  :: String -> IO ()
-casadi__SOCPSolver__loadPlugin x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SOCPSolver__loadPlugin errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-socpSolver_loadPlugin :: String -> IO ()
-socpSolver_loadPlugin = casadi__SOCPSolver__loadPlugin
-
diff --git a/Casadi/Core/Classes/SX.hs b/Casadi/Core/Classes/SX.hs
--- a/Casadi/Core/Classes/SX.hs
+++ b/Casadi/Core/Classes/SX.hs
@@ -29,8 +29,10 @@
          sx___copysign__,
          sx___div__,
          sx___eq__,
-         sx___ge__,
-         sx___gt__,
+         sx___ge____0,
+         sx___ge____1,
+         sx___gt____0,
+         sx___gt____1,
          sx___le__,
          sx___lt__,
          sx___mldivide__,
@@ -745,45 +747,87 @@
 
 
 -- direct wrapper
-foreign import ccall unsafe "casadi__SX____ge__" c_casadi__SX____ge__
+foreign import ccall unsafe "casadi__SX____ge____0" c_casadi__SX____ge____0
   :: Ptr (Ptr StdString) -> Ptr SX' -> Ptr SX' -> IO (Ptr SX')
-casadi__SX____ge__
+casadi__SX____ge____0
   :: SX -> SX -> IO SX
-casadi__SX____ge__ x0 x1 =
+casadi__SX____ge____0 x0 x1 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_casadi__SX____ge__ errStrPtrP x0' x1'
+    ret <- c_casadi__SX____ge____0 errStrPtrP x0' x1'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
 -- classy wrapper
-sx___ge__ :: SXClass a => a -> SX -> IO SX
-sx___ge__ x = casadi__SX____ge__ (castSX x)
+sx___ge____0 :: SXClass a => a -> SX -> IO SX
+sx___ge____0 x = casadi__SX____ge____0 (castSX x)
 
 
 -- direct wrapper
-foreign import ccall unsafe "casadi__SX____gt__" c_casadi__SX____gt__
+foreign import ccall unsafe "casadi__SX____ge____1" c_casadi__SX____ge____1
   :: Ptr (Ptr StdString) -> Ptr SX' -> Ptr SX' -> IO (Ptr SX')
-casadi__SX____gt__
+casadi__SX____ge____1
   :: SX -> SX -> IO SX
-casadi__SX____gt__ x0 x1 =
+casadi__SX____ge____1 x0 x1 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_casadi__SX____gt__ errStrPtrP x0' x1'
+    ret <- c_casadi__SX____ge____1 errStrPtrP x0' x1'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
 -- classy wrapper
-sx___gt__ :: SXClass a => a -> SX -> IO SX
-sx___gt__ x = casadi__SX____gt__ (castSX x)
+sx___ge____1 :: SXClass a => a -> SX -> IO SX
+sx___ge____1 x = casadi__SX____ge____1 (castSX x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__SX____gt____0" c_casadi__SX____gt____0
+  :: Ptr (Ptr StdString) -> Ptr SX' -> Ptr SX' -> IO (Ptr SX')
+casadi__SX____gt____0
+  :: SX -> SX -> IO SX
+casadi__SX____gt____0 x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SX____gt____0 errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+sx___gt____0 :: SXClass a => a -> SX -> IO SX
+sx___gt____0 x = casadi__SX____gt____0 (castSX x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__SX____gt____1" c_casadi__SX____gt____1
+  :: Ptr (Ptr StdString) -> Ptr SX' -> Ptr SX' -> IO (Ptr SX')
+casadi__SX____gt____1
+  :: SX -> SX -> IO SX
+casadi__SX____gt____1 x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SX____gt____1 errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+sx___gt____1 :: SXClass a => a -> SX -> IO SX
+sx___gt____1 x = casadi__SX____gt____1 (castSX x)
 
 
 -- direct wrapper
diff --git a/Casadi/Core/Classes/SdpSolver.hs b/Casadi/Core/Classes/SdpSolver.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/Core/Classes/SdpSolver.hs
@@ -0,0 +1,118 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# Language ForeignFunctionInterface #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.Core.Classes.SdpSolver
+       (
+         SdpSolver,
+         SdpSolverClass(..),
+         sdpSolver,
+         sdpSolver_doc,
+         sdpSolver_loadPlugin,
+         sdpSolver_setSOCPOptions,
+       ) where
+
+
+import Prelude hiding ( Functor )
+
+import Data.Vector ( Vector )
+import Foreign.C.Types
+import Foreign.Marshal ( new, free )
+import Foreign.Storable ( peek )
+import Foreign.Ptr ( Ptr, nullPtr )
+import Foreign.ForeignPtr ( newForeignPtr )
+import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
+
+import Casadi.Core.Classes.PrintableObject
+import Casadi.Internal.CToolsInstances ( )
+import Casadi.Internal.FormatException ( formatException )
+import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
+import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
+import Casadi.Internal.WrapReturn ( WrapReturn(..) )
+import Casadi.Core.Data
+import Casadi.Core.Enums
+
+instance Show SdpSolver where
+  show = unsafePerformIO . printableObject_getDescription
+-- direct wrapper
+foreign import ccall unsafe "casadi__SdpSolver__CONSTRUCTOR" c_casadi__SdpSolver__CONSTRUCTOR
+  :: Ptr (Ptr StdString) -> IO (Ptr SdpSolver')
+casadi__SdpSolver__CONSTRUCTOR
+  :: IO SdpSolver
+casadi__SdpSolver__CONSTRUCTOR  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SdpSolver__CONSTRUCTOR errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+sdpSolver :: IO SdpSolver
+sdpSolver = casadi__SdpSolver__CONSTRUCTOR
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__SdpSolver__doc" c_casadi__SdpSolver__doc
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
+casadi__SdpSolver__doc
+  :: String -> IO String
+casadi__SdpSolver__doc x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SdpSolver__doc errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+sdpSolver_doc :: String -> IO String
+sdpSolver_doc = casadi__SdpSolver__doc
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__SdpSolver__loadPlugin" c_casadi__SdpSolver__loadPlugin
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
+casadi__SdpSolver__loadPlugin
+  :: String -> IO ()
+casadi__SdpSolver__loadPlugin x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SdpSolver__loadPlugin errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+sdpSolver_loadPlugin :: String -> IO ()
+sdpSolver_loadPlugin = casadi__SdpSolver__loadPlugin
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__SdpSolver__setSOCPOptions" c_casadi__SdpSolver__setSOCPOptions
+  :: Ptr (Ptr StdString) -> Ptr SdpSolver' -> IO ()
+casadi__SdpSolver__setSOCPOptions
+  :: SdpSolver -> IO ()
+casadi__SdpSolver__setSOCPOptions x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SdpSolver__setSOCPOptions errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+sdpSolver_setSOCPOptions :: SdpSolverClass a => a -> IO ()
+sdpSolver_setSOCPOptions x = casadi__SdpSolver__setSOCPOptions (castSdpSolver x)
+
diff --git a/Casadi/Core/Classes/SdqpSolver.hs b/Casadi/Core/Classes/SdqpSolver.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/Core/Classes/SdqpSolver.hs
@@ -0,0 +1,118 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# Language ForeignFunctionInterface #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.Core.Classes.SdqpSolver
+       (
+         SdqpSolver,
+         SdqpSolverClass(..),
+         sdqpSolver,
+         sdqpSolver_doc,
+         sdqpSolver_loadPlugin,
+         sdqpSolver_setSOCQPOptions,
+       ) where
+
+
+import Prelude hiding ( Functor )
+
+import Data.Vector ( Vector )
+import Foreign.C.Types
+import Foreign.Marshal ( new, free )
+import Foreign.Storable ( peek )
+import Foreign.Ptr ( Ptr, nullPtr )
+import Foreign.ForeignPtr ( newForeignPtr )
+import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
+
+import Casadi.Core.Classes.PrintableObject
+import Casadi.Internal.CToolsInstances ( )
+import Casadi.Internal.FormatException ( formatException )
+import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
+import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
+import Casadi.Internal.WrapReturn ( WrapReturn(..) )
+import Casadi.Core.Data
+import Casadi.Core.Enums
+
+instance Show SdqpSolver where
+  show = unsafePerformIO . printableObject_getDescription
+-- direct wrapper
+foreign import ccall unsafe "casadi__SdqpSolver__CONSTRUCTOR" c_casadi__SdqpSolver__CONSTRUCTOR
+  :: Ptr (Ptr StdString) -> IO (Ptr SdqpSolver')
+casadi__SdqpSolver__CONSTRUCTOR
+  :: IO SdqpSolver
+casadi__SdqpSolver__CONSTRUCTOR  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SdqpSolver__CONSTRUCTOR errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+sdqpSolver :: IO SdqpSolver
+sdqpSolver = casadi__SdqpSolver__CONSTRUCTOR
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__SdqpSolver__doc" c_casadi__SdqpSolver__doc
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
+casadi__SdqpSolver__doc
+  :: String -> IO String
+casadi__SdqpSolver__doc x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SdqpSolver__doc errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+sdqpSolver_doc :: String -> IO String
+sdqpSolver_doc = casadi__SdqpSolver__doc
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__SdqpSolver__loadPlugin" c_casadi__SdqpSolver__loadPlugin
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
+casadi__SdqpSolver__loadPlugin
+  :: String -> IO ()
+casadi__SdqpSolver__loadPlugin x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SdqpSolver__loadPlugin errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+sdqpSolver_loadPlugin :: String -> IO ()
+sdqpSolver_loadPlugin = casadi__SdqpSolver__loadPlugin
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__SdqpSolver__setSOCQPOptions" c_casadi__SdqpSolver__setSOCQPOptions
+  :: Ptr (Ptr StdString) -> Ptr SdqpSolver' -> IO ()
+casadi__SdqpSolver__setSOCQPOptions
+  :: SdqpSolver -> IO ()
+casadi__SdqpSolver__setSOCQPOptions x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SdqpSolver__setSOCQPOptions errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+sdqpSolver_setSOCQPOptions :: SdqpSolverClass a => a -> IO ()
+sdqpSolver_setSOCQPOptions x = casadi__SdqpSolver__setSOCQPOptions (castSdqpSolver x)
+
diff --git a/Casadi/Core/Classes/SocpSolver.hs b/Casadi/Core/Classes/SocpSolver.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/Core/Classes/SocpSolver.hs
@@ -0,0 +1,97 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# Language ForeignFunctionInterface #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.Core.Classes.SocpSolver
+       (
+         SocpSolver,
+         SocpSolverClass(..),
+         socpSolver,
+         socpSolver_doc,
+         socpSolver_loadPlugin,
+       ) where
+
+
+import Prelude hiding ( Functor )
+
+import Data.Vector ( Vector )
+import Foreign.C.Types
+import Foreign.Marshal ( new, free )
+import Foreign.Storable ( peek )
+import Foreign.Ptr ( Ptr, nullPtr )
+import Foreign.ForeignPtr ( newForeignPtr )
+import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
+
+import Casadi.Core.Classes.PrintableObject
+import Casadi.Internal.CToolsInstances ( )
+import Casadi.Internal.FormatException ( formatException )
+import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
+import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
+import Casadi.Internal.WrapReturn ( WrapReturn(..) )
+import Casadi.Core.Data
+import Casadi.Core.Enums
+
+instance Show SocpSolver where
+  show = unsafePerformIO . printableObject_getDescription
+-- direct wrapper
+foreign import ccall unsafe "casadi__SocpSolver__CONSTRUCTOR" c_casadi__SocpSolver__CONSTRUCTOR
+  :: Ptr (Ptr StdString) -> IO (Ptr SocpSolver')
+casadi__SocpSolver__CONSTRUCTOR
+  :: IO SocpSolver
+casadi__SocpSolver__CONSTRUCTOR  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SocpSolver__CONSTRUCTOR errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+socpSolver :: IO SocpSolver
+socpSolver = casadi__SocpSolver__CONSTRUCTOR
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__SocpSolver__doc" c_casadi__SocpSolver__doc
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
+casadi__SocpSolver__doc
+  :: String -> IO String
+casadi__SocpSolver__doc x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SocpSolver__doc errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+socpSolver_doc :: String -> IO String
+socpSolver_doc = casadi__SocpSolver__doc
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__SocpSolver__loadPlugin" c_casadi__SocpSolver__loadPlugin
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
+casadi__SocpSolver__loadPlugin
+  :: String -> IO ()
+casadi__SocpSolver__loadPlugin x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__SocpSolver__loadPlugin errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+socpSolver_loadPlugin :: String -> IO ()
+socpSolver_loadPlugin = casadi__SocpSolver__loadPlugin
+
diff --git a/Casadi/Core/Classes/StabilizedQPSolver.hs b/Casadi/Core/Classes/StabilizedQPSolver.hs
deleted file mode 100644
--- a/Casadi/Core/Classes/StabilizedQPSolver.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# Language ForeignFunctionInterface #-}
-{-# Language FlexibleInstances #-}
-{-# Language MultiParamTypeClasses #-}
-
-module Casadi.Core.Classes.StabilizedQPSolver
-       (
-         StabilizedQPSolver,
-         StabilizedQPSolverClass(..),
-         stabilizedQPSolver,
-         stabilizedQPSolver_doc,
-         stabilizedQPSolver_generateNativeCode,
-         stabilizedQPSolver_loadPlugin,
-         stabilizedQPSolver_setLPOptions,
-       ) where
-
-
-import Prelude hiding ( Functor )
-
-import Data.Vector ( Vector )
-import Foreign.C.Types
-import Foreign.Marshal ( new, free )
-import Foreign.Storable ( peek )
-import Foreign.Ptr ( Ptr, nullPtr )
-import Foreign.ForeignPtr ( newForeignPtr )
-import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
-
-import Casadi.Core.Classes.PrintableObject
-import Casadi.Internal.CToolsInstances ( )
-import Casadi.Internal.FormatException ( formatException )
-import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
-import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
-import Casadi.Internal.WrapReturn ( WrapReturn(..) )
-import Casadi.Core.Data
-import Casadi.Core.Enums
-
-instance Show StabilizedQPSolver where
-  show = unsafePerformIO . printableObject_getDescription
--- direct wrapper
-foreign import ccall unsafe "casadi__StabilizedQPSolver__CONSTRUCTOR" c_casadi__StabilizedQPSolver__CONSTRUCTOR
-  :: Ptr (Ptr StdString) -> IO (Ptr StabilizedQPSolver')
-casadi__StabilizedQPSolver__CONSTRUCTOR
-  :: IO StabilizedQPSolver
-casadi__StabilizedQPSolver__CONSTRUCTOR  =
-
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__StabilizedQPSolver__CONSTRUCTOR errStrPtrP 
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-stabilizedQPSolver :: IO StabilizedQPSolver
-stabilizedQPSolver = casadi__StabilizedQPSolver__CONSTRUCTOR
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__StabilizedQPSolver__doc" c_casadi__StabilizedQPSolver__doc
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
-casadi__StabilizedQPSolver__doc
-  :: String -> IO String
-casadi__StabilizedQPSolver__doc x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__StabilizedQPSolver__doc errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-stabilizedQPSolver_doc :: String -> IO String
-stabilizedQPSolver_doc = casadi__StabilizedQPSolver__doc
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__StabilizedQPSolver__generateNativeCode" c_casadi__StabilizedQPSolver__generateNativeCode
-  :: Ptr (Ptr StdString) -> Ptr StabilizedQPSolver' -> Ptr StdString -> IO ()
-casadi__StabilizedQPSolver__generateNativeCode
-  :: StabilizedQPSolver -> String -> IO ()
-casadi__StabilizedQPSolver__generateNativeCode x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__StabilizedQPSolver__generateNativeCode errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-stabilizedQPSolver_generateNativeCode :: StabilizedQPSolverClass a => a -> String -> IO ()
-stabilizedQPSolver_generateNativeCode x = casadi__StabilizedQPSolver__generateNativeCode (castStabilizedQPSolver x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__StabilizedQPSolver__loadPlugin" c_casadi__StabilizedQPSolver__loadPlugin
-  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
-casadi__StabilizedQPSolver__loadPlugin
-  :: String -> IO ()
-casadi__StabilizedQPSolver__loadPlugin x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__StabilizedQPSolver__loadPlugin errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-stabilizedQPSolver_loadPlugin :: String -> IO ()
-stabilizedQPSolver_loadPlugin = casadi__StabilizedQPSolver__loadPlugin
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__StabilizedQPSolver__setLPOptions" c_casadi__StabilizedQPSolver__setLPOptions
-  :: Ptr (Ptr StdString) -> Ptr StabilizedQPSolver' -> IO ()
-casadi__StabilizedQPSolver__setLPOptions
-  :: StabilizedQPSolver -> IO ()
-casadi__StabilizedQPSolver__setLPOptions x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__StabilizedQPSolver__setLPOptions errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-stabilizedQPSolver_setLPOptions :: StabilizedQPSolverClass a => a -> IO ()
-stabilizedQPSolver_setLPOptions x = casadi__StabilizedQPSolver__setLPOptions (castStabilizedQPSolver x)
-
diff --git a/Casadi/Core/Classes/StabilizedQpSolver.hs b/Casadi/Core/Classes/StabilizedQpSolver.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/Core/Classes/StabilizedQpSolver.hs
@@ -0,0 +1,140 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# Language ForeignFunctionInterface #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.Core.Classes.StabilizedQpSolver
+       (
+         StabilizedQpSolver,
+         StabilizedQpSolverClass(..),
+         stabilizedQpSolver,
+         stabilizedQpSolver_doc,
+         stabilizedQpSolver_generateNativeCode,
+         stabilizedQpSolver_loadPlugin,
+         stabilizedQpSolver_setLPOptions,
+       ) where
+
+
+import Prelude hiding ( Functor )
+
+import Data.Vector ( Vector )
+import Foreign.C.Types
+import Foreign.Marshal ( new, free )
+import Foreign.Storable ( peek )
+import Foreign.Ptr ( Ptr, nullPtr )
+import Foreign.ForeignPtr ( newForeignPtr )
+import System.IO.Unsafe ( unsafePerformIO ) -- for show instances
+
+import Casadi.Core.Classes.PrintableObject
+import Casadi.Internal.CToolsInstances ( )
+import Casadi.Internal.FormatException ( formatException )
+import Casadi.Internal.MarshalTypes ( StdVec, StdString) -- StdPair StdOstream'
+import Casadi.Internal.Marshal ( Marshal(..), withMarshal )
+import Casadi.Internal.WrapReturn ( WrapReturn(..) )
+import Casadi.Core.Data
+import Casadi.Core.Enums
+
+instance Show StabilizedQpSolver where
+  show = unsafePerformIO . printableObject_getDescription
+-- direct wrapper
+foreign import ccall unsafe "casadi__StabilizedQpSolver__CONSTRUCTOR" c_casadi__StabilizedQpSolver__CONSTRUCTOR
+  :: Ptr (Ptr StdString) -> IO (Ptr StabilizedQpSolver')
+casadi__StabilizedQpSolver__CONSTRUCTOR
+  :: IO StabilizedQpSolver
+casadi__StabilizedQpSolver__CONSTRUCTOR  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__StabilizedQpSolver__CONSTRUCTOR errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+stabilizedQpSolver :: IO StabilizedQpSolver
+stabilizedQpSolver = casadi__StabilizedQpSolver__CONSTRUCTOR
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__StabilizedQpSolver__doc" c_casadi__StabilizedQpSolver__doc
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO (Ptr StdString)
+casadi__StabilizedQpSolver__doc
+  :: String -> IO String
+casadi__StabilizedQpSolver__doc x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__StabilizedQpSolver__doc errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+stabilizedQpSolver_doc :: String -> IO String
+stabilizedQpSolver_doc = casadi__StabilizedQpSolver__doc
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__StabilizedQpSolver__generateNativeCode" c_casadi__StabilizedQpSolver__generateNativeCode
+  :: Ptr (Ptr StdString) -> Ptr StabilizedQpSolver' -> Ptr StdString -> IO ()
+casadi__StabilizedQpSolver__generateNativeCode
+  :: StabilizedQpSolver -> String -> IO ()
+casadi__StabilizedQpSolver__generateNativeCode x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__StabilizedQpSolver__generateNativeCode errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+stabilizedQpSolver_generateNativeCode :: StabilizedQpSolverClass a => a -> String -> IO ()
+stabilizedQpSolver_generateNativeCode x = casadi__StabilizedQpSolver__generateNativeCode (castStabilizedQpSolver x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__StabilizedQpSolver__loadPlugin" c_casadi__StabilizedQpSolver__loadPlugin
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
+casadi__StabilizedQpSolver__loadPlugin
+  :: String -> IO ()
+casadi__StabilizedQpSolver__loadPlugin x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__StabilizedQpSolver__loadPlugin errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+stabilizedQpSolver_loadPlugin :: String -> IO ()
+stabilizedQpSolver_loadPlugin = casadi__StabilizedQpSolver__loadPlugin
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__StabilizedQpSolver__setLPOptions" c_casadi__StabilizedQpSolver__setLPOptions
+  :: Ptr (Ptr StdString) -> Ptr StabilizedQpSolver' -> IO ()
+casadi__StabilizedQpSolver__setLPOptions
+  :: StabilizedQpSolver -> IO ()
+casadi__StabilizedQpSolver__setLPOptions x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__StabilizedQpSolver__setLPOptions errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+stabilizedQpSolver_setLPOptions :: StabilizedQpSolverClass a => a -> IO ()
+stabilizedQpSolver_setLPOptions x = casadi__StabilizedQpSolver__setLPOptions (castStabilizedQpSolver x)
+
diff --git a/Casadi/Core/Data.hs b/Casadi/Core/Data.hs
--- a/Casadi/Core/Data.hs
+++ b/Casadi/Core/Data.hs
@@ -21,4852 +21,10300 @@
 >
 >In C++, supply a CallbackCPtr function pointer When the callback function
 >returns a non-zero integer, the host is signalled of a problem. E.g. an
->NLPSolver may halt iterations if the Callback is something else than 0
->
->In python, supply a callable, annotated with pycallback decorator
->
->C++ includes: functor.hpp 
--}
-newtype Callback = Callback (ForeignPtr Callback')
--- typeclass decl
-class CallbackClass a where
-  castCallback :: a -> Callback
-instance CallbackClass Callback where
-  castCallback = id
-
--- baseclass instances
-instance FunctorClass Callback where
-  castFunctor (Callback x) = Functor (castForeignPtr x)
-
-instance PrintableObjectClass Callback where
-  castPrintableObject (Callback x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass Callback where
-  castSharedObject (Callback x) = SharedObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal Callback (Ptr Callback') where
-  marshal (Callback x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (Callback x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__Callback" 
-  c_delete_casadi__Callback :: FunPtr (Ptr Callback' -> IO ())
-instance WrapReturn (Ptr Callback') Callback where
-  wrapReturn = (fmap Callback) . (newForeignPtr c_delete_casadi__Callback)
-
-
--- raw decl
-data CasadiMeta'
--- data decl
-{-|
->Collects global CasADi meta information.
->
->Joris Gillis
->
->C++ includes: casadi_meta.hpp 
--}
-newtype CasadiMeta = CasadiMeta (ForeignPtr CasadiMeta')
--- typeclass decl
-class CasadiMetaClass a where
-  castCasadiMeta :: a -> CasadiMeta
-instance CasadiMetaClass CasadiMeta where
-  castCasadiMeta = id
-
--- baseclass instances
-
--- helper instances
-instance Marshal CasadiMeta (Ptr CasadiMeta') where
-  marshal (CasadiMeta x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (CasadiMeta x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__CasadiMeta" 
-  c_delete_casadi__CasadiMeta :: FunPtr (Ptr CasadiMeta' -> IO ())
-instance WrapReturn (Ptr CasadiMeta') CasadiMeta where
-  wrapReturn = (fmap CasadiMeta) . (newForeignPtr c_delete_casadi__CasadiMeta)
-
-
--- raw decl
-data CasadiOptions'
--- data decl
-{-|
->Collects global CasADi options.
->
->Note to developers: use sparingly. Global options are - in general - a
->rather bad idea
->
->this class must never be instantiated. Access its static members directly
->Joris Gillis
->
->C++ includes: casadi_options.hpp 
--}
-newtype CasadiOptions = CasadiOptions (ForeignPtr CasadiOptions')
--- typeclass decl
-class CasadiOptionsClass a where
-  castCasadiOptions :: a -> CasadiOptions
-instance CasadiOptionsClass CasadiOptions where
-  castCasadiOptions = id
-
--- baseclass instances
-
--- helper instances
-instance Marshal CasadiOptions (Ptr CasadiOptions') where
-  marshal (CasadiOptions x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (CasadiOptions x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__CasadiOptions" 
-  c_delete_casadi__CasadiOptions :: FunPtr (Ptr CasadiOptions' -> IO ())
-instance WrapReturn (Ptr CasadiOptions') CasadiOptions where
-  wrapReturn = (fmap CasadiOptions) . (newForeignPtr c_delete_casadi__CasadiOptions)
-
-
--- raw decl
-data ControlSimulator'
--- data decl
-{-|
->Piecewise Simulation class.
->
->A ControlSimulator can be seen as a chain of Simulators whereby some
->parameters change from one Simulator to the next.
->
->These changing parameters can typically be interpreted as "controls" in
->the context of dynamic optimization.
->
->We discriminate between the following time steps: Major time-steps. These
->are the time steps provided by the supplied grid. Controls are constant
->inbetween major time-steps  Minor time-steps. These are time steps linearly
->interpolated from one major time-step to the next. The option 'nf' regulates
->how many minor time-steps are taken.  Integration time-steps. Time steps
->that the supplied integrator might choose to integrate the continuous
->dynamics. They are not important what ControlSimulator is concerned.  np
->Number of parameters nu Number of controls ns The number of major grid
->points, as supplied in the constructor nf The number of minor grid points
->per major interval
->
->Joris Gillis
->
->>Input scheme: casadi::ControlSimulatorInput (CONTROLSIMULATOR_NUM_IN = 4) [controlsimulatorIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| CONTROLSIMULATOR_X0    | x0                     | Differential or        |
->|                        |                        | algebraic state at t0  |
->|                        |                        | (dimension nx-by-1) .  |
->+------------------------+------------------------+------------------------+
->| CONTROLSIMULATOR_P     | p                      | Parameters that are    |
->|                        |                        | fixed over the entire  |
->|                        |                        | horizon (dimension np- |
->|                        |                        | by-1) .                |
->+------------------------+------------------------+------------------------+
->| CONTROLSIMULATOR_U     | u                      | Parameters that change |
->|                        |                        | over the integration   |
->|                        |                        | intervals (dimension   |
->|                        |                        | nu-by-(ns-1)) .        |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| control_endp | OT_BOOLEAN   | false        | Include a    | casadi::Cont |
->| oint         |              |              | control      | rolSimulator |
->|              |              |              | value at the | Internal     |
->|              |              |              | end of the   |              |
->|              |              |              | simulation   |              |
->|              |              |              | domain. Used |              |
->|              |              |              | for interpol |              |
->|              |              |              | ation.       |              |
->+--------------+--------------+--------------+--------------+--------------+
->| control_inte | OT_STRING    | "none"       | none|nearest | casadi::Cont |
->| rpolation    |              |              | |linear      | rolSimulator |
->|              |              |              |              | Internal     |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| integrator   | OT_STRING    | GenericType( | An           | casadi::Cont |
->|              |              | )            | integrator   | rolSimulator |
->|              |              |              | creator      | Internal     |
->|              |              |              | function     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| integrator_o | OT_DICTIONAR | GenericType( | Options to   | casadi::Cont |
->| ptions       | Y            | )            | be passed to | rolSimulator |
->|              |              |              | the          | Internal     |
->|              |              |              | integrator   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| minor_grid   | OT_INTEGERVE | GenericType( | The local    | casadi::Cont |
->|              | CTOR         | )            | grid used on | rolSimulator |
->|              |              |              | each major   | Internal     |
->|              |              |              | interval,    |              |
->|              |              |              | with time    |              |
->|              |              |              | normalized   |              |
->|              |              |              | to 1. By     |              |
->|              |              |              | default,     |              |
->|              |              |              | option 'nf'  |              |
->|              |              |              | is used to   |              |
->|              |              |              | construct a  |              |
->|              |              |              | linearly     |              |
->|              |              |              | spaced grid. |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| nf           | OT_INTEGER   | 1            | Number of    | casadi::Cont |
->|              |              |              | minor        | rolSimulator |
->|              |              |              | grained      | Internal     |
->|              |              |              | integration  |              |
->|              |              |              | steps per    |              |
->|              |              |              | major        |              |
->|              |              |              | interval.    |              |
->|              |              |              | nf>0 must    |              |
->|              |              |              | hold. This   |              |
->|              |              |              | option is    |              |
->|              |              |              | not used     |              |
->|              |              |              | when         |              |
->|              |              |              | 'minor_grid' |              |
->|              |              |              | is provided. |              |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| simulator_op | OT_DICTIONAR | GenericType( | Options to   | casadi::Cont |
->| tions        | Y            | )            | be passed to | rolSimulator |
->|              |              |              | the          | Internal     |
->|              |              |              | simulator    |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: control_simulator.hpp 
--}
-newtype ControlSimulator = ControlSimulator (ForeignPtr ControlSimulator')
--- typeclass decl
-class ControlSimulatorClass a where
-  castControlSimulator :: a -> ControlSimulator
-instance ControlSimulatorClass ControlSimulator where
-  castControlSimulator = id
-
--- baseclass instances
-instance FunctionClass ControlSimulator where
-  castFunction (ControlSimulator x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass ControlSimulator where
-  castOptionsFunctionality (ControlSimulator x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass ControlSimulator where
-  castPrintableObject (ControlSimulator x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass ControlSimulator where
-  castSharedObject (ControlSimulator x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass ControlSimulator where
-  castIOInterfaceFunction (ControlSimulator x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal ControlSimulator (Ptr ControlSimulator') where
-  marshal (ControlSimulator x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (ControlSimulator x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__ControlSimulator" 
-  c_delete_casadi__ControlSimulator :: FunPtr (Ptr ControlSimulator' -> IO ())
-instance WrapReturn (Ptr ControlSimulator') ControlSimulator where
-  wrapReturn = (fmap ControlSimulator) . (newForeignPtr c_delete_casadi__ControlSimulator)
-
-
--- raw decl
-data CustomEvaluate'
--- data decl
-{-|
->CustomEvaluate.
->
->In C++, supply a CustomEvaluateCPtr function pointer
->
->In python, supply a callable, annotated with pyevaluate decorator
->
->C++ includes: functor.hpp 
--}
-newtype CustomEvaluate = CustomEvaluate (ForeignPtr CustomEvaluate')
--- typeclass decl
-class CustomEvaluateClass a where
-  castCustomEvaluate :: a -> CustomEvaluate
-instance CustomEvaluateClass CustomEvaluate where
-  castCustomEvaluate = id
-
--- baseclass instances
-instance FunctorClass CustomEvaluate where
-  castFunctor (CustomEvaluate x) = Functor (castForeignPtr x)
-
-instance PrintableObjectClass CustomEvaluate where
-  castPrintableObject (CustomEvaluate x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass CustomEvaluate where
-  castSharedObject (CustomEvaluate x) = SharedObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal CustomEvaluate (Ptr CustomEvaluate') where
-  marshal (CustomEvaluate x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (CustomEvaluate x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__CustomEvaluate" 
-  c_delete_casadi__CustomEvaluate :: FunPtr (Ptr CustomEvaluate' -> IO ())
-instance WrapReturn (Ptr CustomEvaluate') CustomEvaluate where
-  wrapReturn = (fmap CustomEvaluate) . (newForeignPtr c_delete_casadi__CustomEvaluate)
-
-
--- raw decl
-data CustomFunction'
--- data decl
-{-|
->Interface to a custom function.
->
->Joel Andersson
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: custom_function.hpp 
--}
-newtype CustomFunction = CustomFunction (ForeignPtr CustomFunction')
--- typeclass decl
-class CustomFunctionClass a where
-  castCustomFunction :: a -> CustomFunction
-instance CustomFunctionClass CustomFunction where
-  castCustomFunction = id
-
--- baseclass instances
-instance FunctionClass CustomFunction where
-  castFunction (CustomFunction x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass CustomFunction where
-  castOptionsFunctionality (CustomFunction x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass CustomFunction where
-  castPrintableObject (CustomFunction x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass CustomFunction where
-  castSharedObject (CustomFunction x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass CustomFunction where
-  castIOInterfaceFunction (CustomFunction x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal CustomFunction (Ptr CustomFunction') where
-  marshal (CustomFunction x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (CustomFunction x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__CustomFunction" 
-  c_delete_casadi__CustomFunction :: FunPtr (Ptr CustomFunction' -> IO ())
-instance WrapReturn (Ptr CustomFunction') CustomFunction where
-  wrapReturn = (fmap CustomFunction) . (newForeignPtr c_delete_casadi__CustomFunction)
-
-
--- raw decl
-data DMatrix'
--- data decl
-{-|
--}
-newtype DMatrix = DMatrix (ForeignPtr DMatrix')
--- typeclass decl
-class DMatrixClass a where
-  castDMatrix :: a -> DMatrix
-instance DMatrixClass DMatrix where
-  castDMatrix = id
-
--- baseclass instances
-instance PrintableObjectClass DMatrix where
-  castPrintableObject (DMatrix x) = PrintableObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal DMatrix (Ptr DMatrix') where
-  marshal (DMatrix x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (DMatrix x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__DMatrix" 
-  c_delete_casadi__DMatrix :: FunPtr (Ptr DMatrix' -> IO ())
-instance WrapReturn (Ptr DMatrix') DMatrix where
-  wrapReturn = (fmap DMatrix) . (newForeignPtr c_delete_casadi__DMatrix)
-
-
--- raw decl
-data DerivativeGenerator'
--- data decl
-{-|
->Derivative Generator Functor.
->
->In C++, supply a DerivativeGeneratorCPtr function pointer
->
->In python, supply a callable, annotated with derivativegenerator decorator
->
->C++ includes: functor.hpp 
--}
-newtype DerivativeGenerator = DerivativeGenerator (ForeignPtr DerivativeGenerator')
--- typeclass decl
-class DerivativeGeneratorClass a where
-  castDerivativeGenerator :: a -> DerivativeGenerator
-instance DerivativeGeneratorClass DerivativeGenerator where
-  castDerivativeGenerator = id
-
--- baseclass instances
-instance FunctorClass DerivativeGenerator where
-  castFunctor (DerivativeGenerator x) = Functor (castForeignPtr x)
-
-instance PrintableObjectClass DerivativeGenerator where
-  castPrintableObject (DerivativeGenerator x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass DerivativeGenerator where
-  castSharedObject (DerivativeGenerator x) = SharedObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal DerivativeGenerator (Ptr DerivativeGenerator') where
-  marshal (DerivativeGenerator x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (DerivativeGenerator x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__DerivativeGenerator" 
-  c_delete_casadi__DerivativeGenerator :: FunPtr (Ptr DerivativeGenerator' -> IO ())
-instance WrapReturn (Ptr DerivativeGenerator') DerivativeGenerator where
-  wrapReturn = (fmap DerivativeGenerator) . (newForeignPtr c_delete_casadi__DerivativeGenerator)
-
-
--- raw decl
-data ExternalFunction'
--- data decl
-{-|
->Interface for a function that is not implemented by CasADi symbolics.
->
->Joel Andersson
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: external_function.hpp 
--}
-newtype ExternalFunction = ExternalFunction (ForeignPtr ExternalFunction')
--- typeclass decl
-class ExternalFunctionClass a where
-  castExternalFunction :: a -> ExternalFunction
-instance ExternalFunctionClass ExternalFunction where
-  castExternalFunction = id
-
--- baseclass instances
-instance FunctionClass ExternalFunction where
-  castFunction (ExternalFunction x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass ExternalFunction where
-  castOptionsFunctionality (ExternalFunction x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass ExternalFunction where
-  castPrintableObject (ExternalFunction x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass ExternalFunction where
-  castSharedObject (ExternalFunction x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass ExternalFunction where
-  castIOInterfaceFunction (ExternalFunction x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal ExternalFunction (Ptr ExternalFunction') where
-  marshal (ExternalFunction x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (ExternalFunction x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__ExternalFunction" 
-  c_delete_casadi__ExternalFunction :: FunPtr (Ptr ExternalFunction' -> IO ())
-instance WrapReturn (Ptr ExternalFunction') ExternalFunction where
-  wrapReturn = (fmap ExternalFunction) . (newForeignPtr c_delete_casadi__ExternalFunction)
-
-
--- raw decl
-data Function'
--- data decl
-{-|
->General function.
->
->A general function $f$ in casadi can be multi-input, multi-output. Number of
->inputs: nin getNumInputs() Number of outputs: nout getNumOutputs()  We can
->view this function as a being composed of a ( nin, nout) grid of single-
->input, single-output primitive functions. Each such primitive function $f_
->{i, j} \\\\forall i \\\\in [0, nin-1], j \\\\in [0, nout-1]$ can map as
->$\\\\mathbf {R}^{n, m}\\\\to\\\\mathbf{R}^{p, q}$, in which n, m, p, q can
->take different values for every (i, j) pair.  When passing input, you
->specify which partition $i$ is active. You pass the numbers vectorized, as a
->vector of size $(n*m)$. When requesting output, you specify which partition
->$j$ is active. You get the numbers vectorized, as a vector of size $(p*q)$.
->To calculate Jacobians, you need to have $(m=1, q=1)$.
->
->Write the Jacobian as $J_ {i, j} = \\\\nabla f_{i, j} = \\\\frac
->{\\\\partial f_{i, j}(\\\\vec{x})}{\\\\partial \\\\vec{x}}$.
->
->Using $\\\\vec {v} \\\\in \\\\mathbf{R}^n$ as a forward seed: setFwdSeed(v,
->i) Retrieving $\\\\vec {s}_f \\\\in \\\\mathbf{R}^p$ from: getFwdSens(sf, j)
->Using $\\\\vec {w} \\\\in \\\\mathbf{R}^p$ as a forward seed: setAdjSeed(w,
->j) Retrieving $\\\\vec {s}_a \\\\in \\\\mathbf{R}^n $ from: getAdjSens(sa,
->i)  We have the following relationships for function mapping from a row
->vector to a row vector:
->
->$ \\\\vec {s}_f = \\\\nabla f_{i, j} . \\\\vec{v}$ $ \\\\vec {s}_a =
->(\\\\nabla f_{i, j})^T . \\\\vec{w}$
->
->Some quantities in these formulas must be transposed: input col: transpose $
->\\\\vec {v} $ and $\\\\vec{s}_a$ output col: transpose $ \\\\vec {w} $ and
->$\\\\vec{s}_f$  NOTE: Functions are allowed to modify their input arguments
->when evaluating: implicitFunction, IDAS solver Further releases may disallow
->this.
->
->Joel Andersson
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->>List of available monitors
->+---------+--------------------------+
->|   Id    |         Used in          |
->+=========+==========================+
->| inputs  | casadi::FunctionInternal |
->+---------+--------------------------+
->| outputs | casadi::FunctionInternal |
->+---------+--------------------------+
->
->Diagrams
->
->C++ includes: function.hpp 
--}
-newtype Function = Function (ForeignPtr Function')
--- typeclass decl
-class FunctionClass a where
-  castFunction :: a -> Function
-instance FunctionClass Function where
-  castFunction = id
-
--- baseclass instances
-instance OptionsFunctionalityClass Function where
-  castOptionsFunctionality (Function x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass Function where
-  castPrintableObject (Function x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass Function where
-  castSharedObject (Function x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass Function where
-  castIOInterfaceFunction (Function x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal Function (Ptr Function') where
-  marshal (Function x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (Function x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__Function" 
-  c_delete_casadi__Function :: FunPtr (Ptr Function' -> IO ())
-instance WrapReturn (Ptr Function') Function where
-  wrapReturn = (fmap Function) . (newForeignPtr c_delete_casadi__Function)
-
-
--- raw decl
-data Functor'
--- data decl
-{-|
->Functor.
->
->Joris Gillis
->
->C++ includes: functor.hpp 
--}
-newtype Functor = Functor (ForeignPtr Functor')
--- typeclass decl
-class FunctorClass a where
-  castFunctor :: a -> Functor
-instance FunctorClass Functor where
-  castFunctor = id
-
--- baseclass instances
-instance PrintableObjectClass Functor where
-  castPrintableObject (Functor x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass Functor where
-  castSharedObject (Functor x) = SharedObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal Functor (Ptr Functor') where
-  marshal (Functor x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (Functor x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__Functor" 
-  c_delete_casadi__Functor :: FunPtr (Ptr Functor' -> IO ())
-instance WrapReturn (Ptr Functor') Functor where
-  wrapReturn = (fmap Functor) . (newForeignPtr c_delete_casadi__Functor)
-
-
--- raw decl
-data GenericType'
--- data decl
-{-|
->Generic data type.
->
->Joel Andersson
->
->C++ includes: generic_type.hpp 
--}
-newtype GenericType = GenericType (ForeignPtr GenericType')
--- typeclass decl
-class GenericTypeClass a where
-  castGenericType :: a -> GenericType
-instance GenericTypeClass GenericType where
-  castGenericType = id
-
--- baseclass instances
-instance PrintableObjectClass GenericType where
-  castPrintableObject (GenericType x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass GenericType where
-  castSharedObject (GenericType x) = SharedObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal GenericType (Ptr GenericType') where
-  marshal (GenericType x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (GenericType x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__GenericType" 
-  c_delete_casadi__GenericType :: FunPtr (Ptr GenericType' -> IO ())
-instance WrapReturn (Ptr GenericType') GenericType where
-  wrapReturn = (fmap GenericType) . (newForeignPtr c_delete_casadi__GenericType)
-
-
--- raw decl
-data HomotopyNLPSolver'
--- data decl
-{-|
->Base class for Homotopy NLP Solvers.
->
->Solves the following parametric nonlinear program (NLP):min          F(x, p,
->tau)  x  subject to             LBX <=   x    <= UBX             LBG <= G(x,
->p) <= UBG                        p  == P nx: number of decision variables
->ng: number of constraints     np: number of parameters
->
->In a homotopy from tau = 0 to tau = 1.
->
->Joris Gillis
->
->>Input scheme: casadi::NLPSolverInput (NLP_SOLVER_NUM_IN = 9) [nlpSolverIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| NLP_SOLVER_X0          | x0                     | Decision variables,    |
->|                        |                        | initial guess (nx x 1) |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_P           | p                      | Value of fixed         |
->|                        |                        | parameters (np x 1) .  |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LBX         | lbx                    | Decision variables     |
->|                        |                        | lower bound (nx x 1),  |
->|                        |                        | default -inf .         |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_UBX         | ubx                    | Decision variables     |
->|                        |                        | upper bound (nx x 1),  |
->|                        |                        | default +inf .         |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LBG         | lbg                    | Constraints lower      |
->|                        |                        | bound (ng x 1),        |
->|                        |                        | default -inf .         |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_UBG         | ubg                    | Constraints upper      |
->|                        |                        | bound (ng x 1),        |
->|                        |                        | default +inf .         |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LAM_X0      | lam_x0                 | Lagrange multipliers   |
->|                        |                        | for bounds on X,       |
->|                        |                        | initial guess (nx x 1) |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LAM_G0      | lam_g0                 | Lagrange multipliers   |
->|                        |                        | for bounds on G,       |
->|                        |                        | initial guess (ng x 1) |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->
->>Output scheme: casadi::NLPSolverOutput (NLP_SOLVER_NUM_OUT = 7) [nlpSolverOut]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| NLP_SOLVER_X           | x                      | Decision variables at  |
->|                        |                        | the optimal solution   |
->|                        |                        | (nx x 1) .             |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_F           | f                      | Cost function value at |
->|                        |                        | the optimal solution   |
->|                        |                        | (1 x 1) .              |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_G           | g                      | Constraints function   |
->|                        |                        | at the optimal         |
->|                        |                        | solution (ng x 1) .    |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LAM_X       | lam_x                  | Lagrange multipliers   |
->|                        |                        | for bounds on X at the |
->|                        |                        | solution (nx x 1) .    |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LAM_G       | lam_g                  | Lagrange multipliers   |
->|                        |                        | for bounds on G at the |
->|                        |                        | solution (ng x 1) .    |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LAM_P       | lam_p                  | Lagrange multipliers   |
->|                        |                        | for bounds on P at the |
->|                        |                        | solution (np x 1) .    |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| expand       | OT_BOOLEAN   | false        | Expand the   | casadi::Homo |
->|              |              |              | NLP function | topyNLPInter |
->|              |              |              | in terms of  | nal          |
->|              |              |              | scalar       |              |
->|              |              |              | operations,  |              |
->|              |              |              | i.e. MX->SX  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: homotopy_nlp_solver.hpp 
--}
-newtype HomotopyNLPSolver = HomotopyNLPSolver (ForeignPtr HomotopyNLPSolver')
--- typeclass decl
-class HomotopyNLPSolverClass a where
-  castHomotopyNLPSolver :: a -> HomotopyNLPSolver
-instance HomotopyNLPSolverClass HomotopyNLPSolver where
-  castHomotopyNLPSolver = id
-
--- baseclass instances
-instance FunctionClass HomotopyNLPSolver where
-  castFunction (HomotopyNLPSolver x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass HomotopyNLPSolver where
-  castOptionsFunctionality (HomotopyNLPSolver x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass HomotopyNLPSolver where
-  castPrintableObject (HomotopyNLPSolver x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass HomotopyNLPSolver where
-  castSharedObject (HomotopyNLPSolver x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass HomotopyNLPSolver where
-  castIOInterfaceFunction (HomotopyNLPSolver x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal HomotopyNLPSolver (Ptr HomotopyNLPSolver') where
-  marshal (HomotopyNLPSolver x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (HomotopyNLPSolver x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__HomotopyNLPSolver" 
-  c_delete_casadi__HomotopyNLPSolver :: FunPtr (Ptr HomotopyNLPSolver' -> IO ())
-instance WrapReturn (Ptr HomotopyNLPSolver') HomotopyNLPSolver where
-  wrapReturn = (fmap HomotopyNLPSolver) . (newForeignPtr c_delete_casadi__HomotopyNLPSolver)
-
-
--- raw decl
-data IMatrix'
--- data decl
-{-|
--}
-newtype IMatrix = IMatrix (ForeignPtr IMatrix')
--- typeclass decl
-class IMatrixClass a where
-  castIMatrix :: a -> IMatrix
-instance IMatrixClass IMatrix where
-  castIMatrix = id
-
--- baseclass instances
-instance PrintableObjectClass IMatrix where
-  castPrintableObject (IMatrix x) = PrintableObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal IMatrix (Ptr IMatrix') where
-  marshal (IMatrix x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (IMatrix x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__IMatrix" 
-  c_delete_casadi__IMatrix :: FunPtr (Ptr IMatrix' -> IO ())
-instance WrapReturn (Ptr IMatrix') IMatrix where
-  wrapReturn = (fmap IMatrix) . (newForeignPtr c_delete_casadi__IMatrix)
-
-
--- raw decl
-data IOScheme'
--- data decl
-{-|
->Class with mapping between names and indices.
->
->Joris Gillis
->
->C++ includes: io_scheme.hpp 
--}
-newtype IOScheme = IOScheme (ForeignPtr IOScheme')
--- typeclass decl
-class IOSchemeClass a where
-  castIOScheme :: a -> IOScheme
-instance IOSchemeClass IOScheme where
-  castIOScheme = id
-
--- baseclass instances
-instance PrintableObjectClass IOScheme where
-  castPrintableObject (IOScheme x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass IOScheme where
-  castSharedObject (IOScheme x) = SharedObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal IOScheme (Ptr IOScheme') where
-  marshal (IOScheme x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (IOScheme x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__IOScheme" 
-  c_delete_casadi__IOScheme :: FunPtr (Ptr IOScheme' -> IO ())
-instance WrapReturn (Ptr IOScheme') IOScheme where
-  wrapReturn = (fmap IOScheme) . (newForeignPtr c_delete_casadi__IOScheme)
-
-
--- raw decl
-data ImplicitFunction'
--- data decl
-{-|
->Abstract base class for the implicit function classes.
->
->The equation:
->
->F(z, x1, x2, ..., xn) == 0
->
->where d_F/dz is invertible, implicitly defines the equation:
->
->z := G(x1, x2, ..., xn)
->
->F should be an Function mapping from (n+1) inputs to m outputs. The first
->output is the residual that should be zero.
->
->ImplicitFunction (G) is an Function mapping from n inputs to m outputs. n
->may be zero. The first output is the solved for z.
->
->You can provide an initial guess for z by setting output(0) of
->ImplicitFunction.
->
->Joel Andersson
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| constraints  | OT_INTEGERVE | GenericType( | Constrain    | casadi::Impl |
->|              | CTOR         | )            | the          | icitFunction |
->|              |              |              | unknowns. 0  | Internal     |
->|              |              |              | (default):   |              |
->|              |              |              | no           |              |
->|              |              |              | constraint   |              |
->|              |              |              | on ui, 1: ui |              |
->|              |              |              | >= 0.0, -1:  |              |
->|              |              |              | ui <= 0.0,   |              |
->|              |              |              | 2: ui > 0.0, |              |
->|              |              |              | -2: ui <     |              |
->|              |              |              | 0.0.         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| implicit_inp | OT_INTEGER   | 0            | Index of the | casadi::Impl |
->| ut           |              |              | input that   | icitFunction |
->|              |              |              | corresponds  | Internal     |
->|              |              |              | to the       |              |
->|              |              |              | actual root- |              |
->|              |              |              | finding      |              |
->+--------------+--------------+--------------+--------------+--------------+
->| implicit_out | OT_INTEGER   | 0            | Index of the | casadi::Impl |
->| put          |              |              | output that  | icitFunction |
->|              |              |              | corresponds  | Internal     |
->|              |              |              | to the       |              |
->|              |              |              | actual root- |              |
->|              |              |              | finding      |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| linear_solve | OT_STRING    | GenericType( | User-defined | casadi::Impl |
->| r            |              | )            | linear       | icitFunction |
->|              |              |              | solver       | Internal     |
->|              |              |              | class.       |              |
->|              |              |              | Needed for s |              |
->|              |              |              | ensitivities |              |
->|              |              |              | .            |              |
->+--------------+--------------+--------------+--------------+--------------+
->| linear_solve | OT_DICTIONAR | GenericType( | Options to   | casadi::Impl |
->| r_options    | Y            | )            | be passed to | icitFunction |
->|              |              |              | the linear   | Internal     |
->|              |              |              | solver.      |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: implicit_function.hpp 
--}
-newtype ImplicitFunction = ImplicitFunction (ForeignPtr ImplicitFunction')
--- typeclass decl
-class ImplicitFunctionClass a where
-  castImplicitFunction :: a -> ImplicitFunction
-instance ImplicitFunctionClass ImplicitFunction where
-  castImplicitFunction = id
-
--- baseclass instances
-instance FunctionClass ImplicitFunction where
-  castFunction (ImplicitFunction x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass ImplicitFunction where
-  castOptionsFunctionality (ImplicitFunction x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass ImplicitFunction where
-  castPrintableObject (ImplicitFunction x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass ImplicitFunction where
-  castSharedObject (ImplicitFunction x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass ImplicitFunction where
-  castIOInterfaceFunction (ImplicitFunction x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal ImplicitFunction (Ptr ImplicitFunction') where
-  marshal (ImplicitFunction x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (ImplicitFunction x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__ImplicitFunction" 
-  c_delete_casadi__ImplicitFunction :: FunPtr (Ptr ImplicitFunction' -> IO ())
-instance WrapReturn (Ptr ImplicitFunction') ImplicitFunction where
-  wrapReturn = (fmap ImplicitFunction) . (newForeignPtr c_delete_casadi__ImplicitFunction)
-
-
--- raw decl
-data Integrator'
--- data decl
-{-|
->Base class for integrators.
->
->Integrator abstract base class
->
->Solves an initial value problem (IVP) coupled to a terminal value problem
->with differential equation given as an implicit ODE coupled to an algebraic
->equation and a set of quadratures: Initial conditions at t=t0  x(t0)  = x0
->q(t0)  = 0   Forward integration from t=t0 to t=tf  der(x) = function(x, z,
->p, t) Forward ODE  0 = fz(x, z, p, t)                  Forward algebraic
->equations  der(q) = fq(x, z, p, t)                  Forward quadratures
->Terminal conditions at t=tf  rx(tf)  = rx0  rq(tf)  = 0 Backward integration
->from t=tf to t=t0  der(rx) = gx(rx, rz, rp, x, z, p, t)        Backward ODE
->0 = gz(rx, rz, rp, x, z, p, t) Backward algebraic equations  der(rq) =
->gq(rx, rz, rp, x, z, p, t) Backward quadratures   where we assume that both
->the forward and backwards integrations are index-1  (i.e. dfz/dz, dgz/drz
->are invertible) and furthermore that  gx, gz and gq have a linear dependency
->on rx, rz and rp.
->
->The Integrator class provides some additional functionality, such as getting
->the value of the state and/or sensitivities at certain time points.
->
->The class does not specify the method used for the integration. This is
->defined in derived classes.
->
->Joel Andersson
->
->>Input scheme: casadi::IntegratorInput (INTEGRATOR_NUM_IN = 7) [integratorIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| INTEGRATOR_X0          | x0                     | Differential state at  |
->|                        |                        | the initial time .     |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_P           | p                      | Parameters .           |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_Z0          | z0                     | Initial guess for the  |
->|                        |                        | algebraic variable .   |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_RX0         | rx0                    | Backward differential  |
->|                        |                        | state at the final     |
->|                        |                        | time .                 |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_RP          | rp                     | Backward parameter     |
->|                        |                        | vector .               |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_RZ0         | rz0                    | Initial guess for the  |
->|                        |                        | backwards algebraic    |
->|                        |                        | variable .             |
->+------------------------+------------------------+------------------------+
->
->>Output scheme: casadi::IntegratorOutput (INTEGRATOR_NUM_OUT = 7) [integratorOut]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| INTEGRATOR_XF          | xf                     | Differential state at  |
->|                        |                        | the final time .       |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_QF          | qf                     | Quadrature state at    |
->|                        |                        | the final time .       |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_ZF          | zf                     | Algebraic variable at  |
->|                        |                        | the final time .       |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_RXF         | rxf                    | Backward differential  |
->|                        |                        | state at the initial   |
->|                        |                        | time .                 |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_RQF         | rqf                    | Backward quadrature    |
->|                        |                        | state at the initial   |
->|                        |                        | time .                 |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_RZF         | rzf                    | Backward algebraic     |
->|                        |                        | variable at the        |
->|                        |                        | initial time .         |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| augmented_op | OT_DICTIONAR | GenericType( | Options to   | casadi::Inte |
->| tions        | Y            | )            | be passed    | gratorIntern |
->|              |              |              | down to the  | al           |
->|              |              |              | augmented    |              |
->|              |              |              | integrator,  |              |
->|              |              |              | if one is    |              |
->|              |              |              | constructed. |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| expand_augme | OT_BOOLEAN   | true         | If DAE       | casadi::Inte |
->| nted         |              |              | callback     | gratorIntern |
->|              |              |              | functions    | al           |
->|              |              |              | are          |              |
->|              |              |              | SXFunction , |              |
->|              |              |              | have         |              |
->|              |              |              | augmented    |              |
->|              |              |              | DAE callback |              |
->|              |              |              | function     |              |
->|              |              |              | also be      |              |
->|              |              |              | SXFunction . |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| print_stats  | OT_BOOLEAN   | false        | Print out    | casadi::Inte |
->|              |              |              | statistics   | gratorIntern |
->|              |              |              | after        | al           |
->|              |              |              | integration  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| t0           | OT_REAL      | 0            | Beginning of | casadi::Inte |
->|              |              |              | the time     | gratorIntern |
->|              |              |              | horizon      | al           |
->+--------------+--------------+--------------+--------------+--------------+
->| tf           | OT_REAL      | 1            | End of the   | casadi::Inte |
->|              |              |              | time horizon | gratorIntern |
->|              |              |              |              | al           |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: integrator.hpp 
--}
-newtype Integrator = Integrator (ForeignPtr Integrator')
--- typeclass decl
-class IntegratorClass a where
-  castIntegrator :: a -> Integrator
-instance IntegratorClass Integrator where
-  castIntegrator = id
-
--- baseclass instances
-instance FunctionClass Integrator where
-  castFunction (Integrator x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass Integrator where
-  castOptionsFunctionality (Integrator x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass Integrator where
-  castPrintableObject (Integrator x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass Integrator where
-  castSharedObject (Integrator x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass Integrator where
-  castIOInterfaceFunction (Integrator x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal Integrator (Ptr Integrator') where
-  marshal (Integrator x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (Integrator x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__Integrator" 
-  c_delete_casadi__Integrator :: FunPtr (Ptr Integrator' -> IO ())
-instance WrapReturn (Ptr Integrator') Integrator where
-  wrapReturn = (fmap Integrator) . (newForeignPtr c_delete_casadi__Integrator)
-
-
--- raw decl
-data LPSolver'
--- data decl
-{-|
->LPSolver.
->
->Solves the following linear problem:
->
->min          c' x x  subject to LBA <= A x <= UBA LBX <= x   <= UBX with x (
->n x 1) c ( n x 1 ) A sparse matrix ( nc x n) LBA, UBA dense vector (nc x 1)
->LBX, UBX dense vector (n x 1)  n: number of decision variables (x) nc:
->number of constraints (A)
->
->Joris Gillis
->
->>Input scheme: casadi::LPSolverInput (LP_SOLVER_NUM_IN = 7) [lpIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| LP_SOLVER_C            | c                      | The vector c: dense (n |
->|                        |                        | x 1) .                 |
->+------------------------+------------------------+------------------------+
->| LP_SOLVER_A            | a                      | The matrix A: sparse,  |
->|                        |                        | (nc x n) - product     |
->|                        |                        | with x must be dense.  |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| LP_SOLVER_LBA          | lba                    | dense, (nc x 1)        |
->+------------------------+------------------------+------------------------+
->| LP_SOLVER_UBA          | uba                    | dense, (nc x 1)        |
->+------------------------+------------------------+------------------------+
->| LP_SOLVER_LBX          | lbx                    | dense, (n x 1)         |
->+------------------------+------------------------+------------------------+
->| LP_SOLVER_UBX          | ubx                    | dense, (n x 1)         |
->+------------------------+------------------------+------------------------+
->
->>Output scheme: casadi::LPSolverOutput (LP_SOLVER_NUM_OUT = 5) [lpOut]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| LP_SOLVER_X            | x                      | The primal solution .  |
->+------------------------+------------------------+------------------------+
->| LP_SOLVER_COST         | cost                   | The optimal cost .     |
->+------------------------+------------------------+------------------------+
->| LP_SOLVER_LAM_A        | lam_a                  | The dual solution      |
->|                        |                        | corresponding to       |
->|                        |                        | linear bounds .        |
->+------------------------+------------------------+------------------------+
->| LP_SOLVER_LAM_X        | lam_x                  | The dual solution      |
->|                        |                        | corresponding to       |
->|                        |                        | simple bounds .        |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: lp_solver.hpp 
--}
-newtype LPSolver = LPSolver (ForeignPtr LPSolver')
--- typeclass decl
-class LPSolverClass a where
-  castLPSolver :: a -> LPSolver
-instance LPSolverClass LPSolver where
-  castLPSolver = id
-
--- baseclass instances
-instance FunctionClass LPSolver where
-  castFunction (LPSolver x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass LPSolver where
-  castOptionsFunctionality (LPSolver x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass LPSolver where
-  castPrintableObject (LPSolver x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass LPSolver where
-  castSharedObject (LPSolver x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass LPSolver where
-  castIOInterfaceFunction (LPSolver x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal LPSolver (Ptr LPSolver') where
-  marshal (LPSolver x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (LPSolver x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__LPSolver" 
-  c_delete_casadi__LPSolver :: FunPtr (Ptr LPSolver' -> IO ())
-instance WrapReturn (Ptr LPSolver') LPSolver where
-  wrapReturn = (fmap LPSolver) . (newForeignPtr c_delete_casadi__LPSolver)
-
-
--- raw decl
-data LinearSolver'
--- data decl
-{-|
->Base class for the linear solver classes.
->
->Solves the linear system A*X = B or A^T*X = B for X with A square and non-
->singular
->
->If A is structurally singular, an error will be thrown during init. If A is
->numerically singular, the prepare step will fail. Joel Andersson
->
->>Input scheme: casadi::LinsolInput (LINSOL_NUM_IN = 3) [linsolIn]
->+-----------+-------+------------------------------------------------+
->| Full name | Short |                  Description                   |
->+===========+=======+================================================+
->| LINSOL_A  | A     | The square matrix A: sparse, (n x n). .        |
->+-----------+-------+------------------------------------------------+
->| LINSOL_B  | B     | The right-hand-side matrix b: dense, (n x m) . |
->+-----------+-------+------------------------------------------------+
->
->>Output scheme: casadi::LinsolOutput (LINSOL_NUM_OUT = 2) [linsolOut]
->+-----------+-------+----------------------------------------------+
->| Full name | Short |                 Description                  |
->+===========+=======+==============================================+
->| LINSOL_X  | X     | Solution to the linear system of equations . |
->+-----------+-------+----------------------------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: linear_solver.hpp 
--}
-newtype LinearSolver = LinearSolver (ForeignPtr LinearSolver')
--- typeclass decl
-class LinearSolverClass a where
-  castLinearSolver :: a -> LinearSolver
-instance LinearSolverClass LinearSolver where
-  castLinearSolver = id
-
--- baseclass instances
-instance FunctionClass LinearSolver where
-  castFunction (LinearSolver x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass LinearSolver where
-  castOptionsFunctionality (LinearSolver x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass LinearSolver where
-  castPrintableObject (LinearSolver x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass LinearSolver where
-  castSharedObject (LinearSolver x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass LinearSolver where
-  castIOInterfaceFunction (LinearSolver x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal LinearSolver (Ptr LinearSolver') where
-  marshal (LinearSolver x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (LinearSolver x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__LinearSolver" 
-  c_delete_casadi__LinearSolver :: FunPtr (Ptr LinearSolver' -> IO ())
-instance WrapReturn (Ptr LinearSolver') LinearSolver where
-  wrapReturn = (fmap LinearSolver) . (newForeignPtr c_delete_casadi__LinearSolver)
-
-
--- raw decl
-data MX'
--- data decl
-{-|
--}
-newtype MX = MX (ForeignPtr MX')
--- typeclass decl
-class MXClass a where
-  castMX :: a -> MX
-instance MXClass MX where
-  castMX = id
-
--- baseclass instances
-instance PrintableObjectClass MX where
-  castPrintableObject (MX x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass MX where
-  castSharedObject (MX x) = SharedObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal MX (Ptr MX') where
-  marshal (MX x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (MX x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__MX" 
-  c_delete_casadi__MX :: FunPtr (Ptr MX' -> IO ())
-instance WrapReturn (Ptr MX') MX where
-  wrapReturn = (fmap MX) . (newForeignPtr c_delete_casadi__MX)
-
-
--- raw decl
-data MXFunction'
--- data decl
-{-|
->General function mapping from/to MX.
->
->Joel Andersson
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: mx_function.hpp 
--}
-newtype MXFunction = MXFunction (ForeignPtr MXFunction')
--- typeclass decl
-class MXFunctionClass a where
-  castMXFunction :: a -> MXFunction
-instance MXFunctionClass MXFunction where
-  castMXFunction = id
-
--- baseclass instances
-instance FunctionClass MXFunction where
-  castFunction (MXFunction x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass MXFunction where
-  castOptionsFunctionality (MXFunction x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass MXFunction where
-  castPrintableObject (MXFunction x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass MXFunction where
-  castSharedObject (MXFunction x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass MXFunction where
-  castIOInterfaceFunction (MXFunction x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal MXFunction (Ptr MXFunction') where
-  marshal (MXFunction x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (MXFunction x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__MXFunction" 
-  c_delete_casadi__MXFunction :: FunPtr (Ptr MXFunction' -> IO ())
-instance WrapReturn (Ptr MXFunction') MXFunction where
-  wrapReturn = (fmap MXFunction) . (newForeignPtr c_delete_casadi__MXFunction)
-
-
--- raw decl
-data NLPSolver'
--- data decl
-{-|
->NLPSolver.
->
->Solves the following parametric nonlinear program (NLP):min          F(x, p)
->x  subject to             LBX <=   x    <= UBX LBG <= G(x, p) <= UBG
->p  == P      nx: number of decision variables     ng: number of constraints
->np: number of parameters
->
->Joel Andersson
->
->>Input scheme: casadi::NLPSolverInput (NLP_SOLVER_NUM_IN = 9) [nlpSolverIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| NLP_SOLVER_X0          | x0                     | Decision variables,    |
->|                        |                        | initial guess (nx x 1) |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_P           | p                      | Value of fixed         |
->|                        |                        | parameters (np x 1) .  |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LBX         | lbx                    | Decision variables     |
->|                        |                        | lower bound (nx x 1),  |
->|                        |                        | default -inf .         |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_UBX         | ubx                    | Decision variables     |
->|                        |                        | upper bound (nx x 1),  |
->|                        |                        | default +inf .         |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LBG         | lbg                    | Constraints lower      |
->|                        |                        | bound (ng x 1),        |
->|                        |                        | default -inf .         |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_UBG         | ubg                    | Constraints upper      |
->|                        |                        | bound (ng x 1),        |
->|                        |                        | default +inf .         |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LAM_X0      | lam_x0                 | Lagrange multipliers   |
->|                        |                        | for bounds on X,       |
->|                        |                        | initial guess (nx x 1) |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LAM_G0      | lam_g0                 | Lagrange multipliers   |
->|                        |                        | for bounds on G,       |
->|                        |                        | initial guess (ng x 1) |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->
->>Output scheme: casadi::NLPSolverOutput (NLP_SOLVER_NUM_OUT = 7) [nlpSolverOut]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| NLP_SOLVER_X           | x                      | Decision variables at  |
->|                        |                        | the optimal solution   |
->|                        |                        | (nx x 1) .             |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_F           | f                      | Cost function value at |
->|                        |                        | the optimal solution   |
->|                        |                        | (1 x 1) .              |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_G           | g                      | Constraints function   |
->|                        |                        | at the optimal         |
->|                        |                        | solution (ng x 1) .    |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LAM_X       | lam_x                  | Lagrange multipliers   |
->|                        |                        | for bounds on X at the |
->|                        |                        | solution (nx x 1) .    |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LAM_G       | lam_g                  | Lagrange multipliers   |
->|                        |                        | for bounds on G at the |
->|                        |                        | solution (ng x 1) .    |
->+------------------------+------------------------+------------------------+
->| NLP_SOLVER_LAM_P       | lam_p                  | Lagrange multipliers   |
->|                        |                        | for bounds on P at the |
->|                        |                        | solution (np x 1) .    |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| eval_errors_ | OT_BOOLEAN   | false        | When errors  | casadi::NLPS |
->| fatal        |              |              | occur during | olverInterna |
->|              |              |              | evaluation   | l            |
->|              |              |              | of           |              |
->|              |              |              | f,g,...,stop |              |
->|              |              |              | the          |              |
->|              |              |              | iterations   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| expand       | OT_BOOLEAN   | false        | Expand the   | casadi::NLPS |
->|              |              |              | NLP function | olverInterna |
->|              |              |              | in terms of  | l            |
->|              |              |              | scalar       |              |
->|              |              |              | operations,  |              |
->|              |              |              | i.e. MX->SX  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| grad_f       | OT_FUNCTION  | GenericType( | Function for | casadi::NLPS |
->|              |              | )            | calculating  | olverInterna |
->|              |              |              | the gradient | l            |
->|              |              |              | of the       |              |
->|              |              |              | objective    |              |
->|              |              |              | (column, aut |              |
->|              |              |              | ogenerated   |              |
->|              |              |              | by default)  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| grad_lag     | OT_FUNCTION  | GenericType( | Function for | casadi::NLPS |
->|              |              | )            | calculating  | olverInterna |
->|              |              |              | the gradient | l            |
->|              |              |              | of the       |              |
->|              |              |              | Lagrangian ( |              |
->|              |              |              | autogenerate |              |
->|              |              |              | d by         |              |
->|              |              |              | default)     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| hess_lag     | OT_FUNCTION  | GenericType( | Function for | casadi::NLPS |
->|              |              | )            | calculating  | olverInterna |
->|              |              |              | the Hessian  | l            |
->|              |              |              | of the       |              |
->|              |              |              | Lagrangian ( |              |
->|              |              |              | autogenerate |              |
->|              |              |              | d by         |              |
->|              |              |              | default)     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| ignore_check | OT_BOOLEAN   | false        | If set to    | casadi::NLPS |
->| _vec         |              |              | true, the    | olverInterna |
->|              |              |              | input shape  | l            |
->|              |              |              | of F will    |              |
->|              |              |              | not be       |              |
->|              |              |              | checked.     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| iteration_ca | OT_CALLBACK  | GenericType( | A function   | casadi::NLPS |
->| llback       |              | )            | that will be | olverInterna |
->|              |              |              | called at    | l            |
->|              |              |              | each         |              |
->|              |              |              | iteration    |              |
->|              |              |              | with the     |              |
->|              |              |              | solver as    |              |
->|              |              |              | input. Check |              |
->|              |              |              | documentatio |              |
->|              |              |              | n of         |              |
->|              |              |              | Callback .   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| iteration_ca | OT_BOOLEAN   | false        | If set to    | casadi::NLPS |
->| llback_ignor |              |              | true, errors | olverInterna |
->| e_errors     |              |              | thrown by it | l            |
->|              |              |              | eration_call |              |
->|              |              |              | back will be |              |
->|              |              |              | ignored.     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| iteration_ca | OT_INTEGER   | 1            | Only call    | casadi::NLPS |
->| llback_step  |              |              | the callback | olverInterna |
->|              |              |              | function     | l            |
->|              |              |              | every few    |              |
->|              |              |              | iterations.  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| jac_f        | OT_FUNCTION  | GenericType( | Function for | casadi::NLPS |
->|              |              | )            | calculating  | olverInterna |
->|              |              |              | the jacobian | l            |
->|              |              |              | of the       |              |
->|              |              |              | objective    |              |
->|              |              |              | (sparse row, |              |
->|              |              |              | autogenerate |              |
->|              |              |              | d by         |              |
->|              |              |              | default)     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| jac_g        | OT_FUNCTION  | GenericType( | Function for | casadi::NLPS |
->|              |              | )            | calculating  | olverInterna |
->|              |              |              | the Jacobian | l            |
->|              |              |              | of the       |              |
->|              |              |              | constraints  |              |
->|              |              |              | (autogenerat |              |
->|              |              |              | ed by        |              |
->|              |              |              | default)     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->| warn_initial | OT_BOOLEAN   | false        | Warn if the  | casadi::NLPS |
->| _bounds      |              |              | initial      | olverInterna |
->|              |              |              | guess does   | l            |
->|              |              |              | not satisfy  |              |
->|              |              |              | LBX and UBX  |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: nlp_solver.hpp 
--}
-newtype NLPSolver = NLPSolver (ForeignPtr NLPSolver')
--- typeclass decl
-class NLPSolverClass a where
-  castNLPSolver :: a -> NLPSolver
-instance NLPSolverClass NLPSolver where
-  castNLPSolver = id
-
--- baseclass instances
-instance FunctionClass NLPSolver where
-  castFunction (NLPSolver x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass NLPSolver where
-  castOptionsFunctionality (NLPSolver x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass NLPSolver where
-  castPrintableObject (NLPSolver x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass NLPSolver where
-  castSharedObject (NLPSolver x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass NLPSolver where
-  castIOInterfaceFunction (NLPSolver x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal NLPSolver (Ptr NLPSolver') where
-  marshal (NLPSolver x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (NLPSolver x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__NLPSolver" 
-  c_delete_casadi__NLPSolver :: FunPtr (Ptr NLPSolver' -> IO ())
-instance WrapReturn (Ptr NLPSolver') NLPSolver where
-  wrapReturn = (fmap NLPSolver) . (newForeignPtr c_delete_casadi__NLPSolver)
-
-
--- raw decl
-data Nullspace'
--- data decl
-{-|
->Base class for nullspace construction.
->
->Constructs a basis for the null-space of a fat matrix A. i.e. finds Z such
->that AZ = 0 holds.
->
->The nullspace is also known as the orthogonal complement of the rowspace of
->a matrix.
->
->It is assumed that the matrix A is of full rank.
->
->Implementations are not required to construct an orthogonal or orthonormal
->basis Joris Gillis
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| dense        | OT_BOOLEAN   | true         | Indicates    | casadi::Null |
->|              |              |              | that dense   | spaceInterna |
->|              |              |              | matrices can | l            |
->|              |              |              | be assumed   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: nullspace.hpp 
--}
-newtype Nullspace = Nullspace (ForeignPtr Nullspace')
--- typeclass decl
-class NullspaceClass a where
-  castNullspace :: a -> Nullspace
-instance NullspaceClass Nullspace where
-  castNullspace = id
-
--- baseclass instances
-instance FunctionClass Nullspace where
-  castFunction (Nullspace x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass Nullspace where
-  castOptionsFunctionality (Nullspace x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass Nullspace where
-  castPrintableObject (Nullspace x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass Nullspace where
-  castSharedObject (Nullspace x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass Nullspace where
-  castIOInterfaceFunction (Nullspace x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal Nullspace (Ptr Nullspace') where
-  marshal (Nullspace x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (Nullspace x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__Nullspace" 
-  c_delete_casadi__Nullspace :: FunPtr (Ptr Nullspace' -> IO ())
-instance WrapReturn (Ptr Nullspace') Nullspace where
-  wrapReturn = (fmap Nullspace) . (newForeignPtr c_delete_casadi__Nullspace)
-
-
--- raw decl
-data OCPSolver'
--- data decl
-{-|
->Base class for OCP solvers.
->
->Joel Andersson
->
->>Input scheme: casadi::OCPInput (OCP_NUM_IN = 14) [ocpIn]
->+------------+--------+----------------------------------------------+
->| Full name  | Short  |                 Description                  |
->+============+========+==============================================+
->| OCP_LBX    | lbx    | States lower bounds (nx x (ns+1)) .          |
->+------------+--------+----------------------------------------------+
->| OCP_UBX    | ubx    | States upper bounds (nx x (ns+1)) .          |
->+------------+--------+----------------------------------------------+
->| OCP_X_INIT | x_init | States initial guess (nx x (ns+1)) .         |
->+------------+--------+----------------------------------------------+
->| OCP_LBU    | lbu    | Controls lower bounds (nu x ns) .            |
->+------------+--------+----------------------------------------------+
->| OCP_UBU    | ubu    | Controls upper bounds (nu x ns) .            |
->+------------+--------+----------------------------------------------+
->| OCP_U_INIT | u_init | Controls initial guess (nu x ns) .           |
->+------------+--------+----------------------------------------------+
->| OCP_LBP    | lbp    | Parameters lower bounds (np x 1) .           |
->+------------+--------+----------------------------------------------+
->| OCP_UBP    | ubp    | Parameters upper bounds (np x 1) .           |
->+------------+--------+----------------------------------------------+
->| OCP_P_INIT | p_init | Parameters initial guess (np x 1) .          |
->+------------+--------+----------------------------------------------+
->| OCP_LBH    | lbh    | Point constraint lower bound (nh x (ns+1)) . |
->+------------+--------+----------------------------------------------+
->| OCP_UBH    | ubh    | Point constraint upper bound (nh x (ns+1)) . |
->+------------+--------+----------------------------------------------+
->| OCP_LBG    | lbg    | Lower bound for the coupling constraints .   |
->+------------+--------+----------------------------------------------+
->| OCP_UBG    | ubg    | Upper bound for the coupling constraints .   |
->+------------+--------+----------------------------------------------+
->
->>Output scheme: casadi::OCPOutput (OCP_NUM_OUT = 5) [ocpOut]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| OCP_X_OPT              | x_opt                  | Optimal state          |
->|                        |                        | trajectory .           |
->+------------------------+------------------------+------------------------+
->| OCP_U_OPT              | u_opt                  | Optimal control        |
->|                        |                        | trajectory .           |
->+------------------------+------------------------+------------------------+
->| OCP_P_OPT              | p_opt                  | Optimal parameters .   |
->+------------------------+------------------------+------------------------+
->| OCP_COST               | cost                   | Objective/cost         |
->|                        |                        | function for optimal   |
->|                        |                        | solution (1 x 1) .     |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| final_time   | OT_REAL      | 1            |              | casadi::OCPS |
->|              |              |              |              | olverInterna |
->|              |              |              |              | l            |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| number_of_gr | OT_INTEGER   | 20           |              | casadi::OCPS |
->| id_points    |              |              |              | olverInterna |
->|              |              |              |              | l            |
->+--------------+--------------+--------------+--------------+--------------+
->| number_of_pa | OT_INTEGER   | 0            |              | casadi::OCPS |
->| rameters     |              |              |              | olverInterna |
->|              |              |              |              | l            |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: ocp_solver.hpp 
--}
-newtype OCPSolver = OCPSolver (ForeignPtr OCPSolver')
--- typeclass decl
-class OCPSolverClass a where
-  castOCPSolver :: a -> OCPSolver
-instance OCPSolverClass OCPSolver where
-  castOCPSolver = id
-
--- baseclass instances
-instance FunctionClass OCPSolver where
-  castFunction (OCPSolver x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass OCPSolver where
-  castOptionsFunctionality (OCPSolver x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass OCPSolver where
-  castPrintableObject (OCPSolver x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass OCPSolver where
-  castSharedObject (OCPSolver x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass OCPSolver where
-  castIOInterfaceFunction (OCPSolver x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal OCPSolver (Ptr OCPSolver') where
-  marshal (OCPSolver x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (OCPSolver x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__OCPSolver" 
-  c_delete_casadi__OCPSolver :: FunPtr (Ptr OCPSolver' -> IO ())
-instance WrapReturn (Ptr OCPSolver') OCPSolver where
-  wrapReturn = (fmap OCPSolver) . (newForeignPtr c_delete_casadi__OCPSolver)
-
-
--- raw decl
-data OptionsFunctionality'
--- data decl
-{-|
->Provides options setting/getting functionality.
->
->Gives a derived class the ability to set and retrieve options in a
->convenient way. It also contains error checking, making sure that the option
->exists and that the value type is correct.
->
->A derived class should add option names, types and default values to the
->corresponding vectors.
->
->Joel Andersson
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: options_functionality.hpp 
--}
-newtype OptionsFunctionality = OptionsFunctionality (ForeignPtr OptionsFunctionality')
--- typeclass decl
-class OptionsFunctionalityClass a where
-  castOptionsFunctionality :: a -> OptionsFunctionality
-instance OptionsFunctionalityClass OptionsFunctionality where
-  castOptionsFunctionality = id
-
--- baseclass instances
-instance PrintableObjectClass OptionsFunctionality where
-  castPrintableObject (OptionsFunctionality x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass OptionsFunctionality where
-  castSharedObject (OptionsFunctionality x) = SharedObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal OptionsFunctionality (Ptr OptionsFunctionality') where
-  marshal (OptionsFunctionality x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (OptionsFunctionality x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__OptionsFunctionality" 
-  c_delete_casadi__OptionsFunctionality :: FunPtr (Ptr OptionsFunctionality' -> IO ())
-instance WrapReturn (Ptr OptionsFunctionality') OptionsFunctionality where
-  wrapReturn = (fmap OptionsFunctionality) . (newForeignPtr c_delete_casadi__OptionsFunctionality)
-
-
--- raw decl
-data Parallelizer'
--- data decl
-{-|
->Parallelizer execution of functions.
->
->Joel Andersson
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| parallelizat | OT_STRING    | "serial"     | (serial|open | casadi::Para |
->| ion          |              |              | mp|mpi)      | llelizerInte |
->|              |              |              |              | rnal         |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->>List of available stats
->+-----------------+------------------------------+
->|       Id        |           Used in            |
->+=================+==============================+
->| max_threads     | casadi::ParallelizerInternal |
->+-----------------+------------------------------+
->| num_threads     | casadi::ParallelizerInternal |
->+-----------------+------------------------------+
->| task_allocation | casadi::ParallelizerInternal |
->+-----------------+------------------------------+
->| task_cputime    | casadi::ParallelizerInternal |
->+-----------------+------------------------------+
->| task_endtime    | casadi::ParallelizerInternal |
->+-----------------+------------------------------+
->| task_order      | casadi::ParallelizerInternal |
->+-----------------+------------------------------+
->| task_starttime  | casadi::ParallelizerInternal |
->+-----------------+------------------------------+
->
->Diagrams
->
->C++ includes: parallelizer.hpp 
--}
-newtype Parallelizer = Parallelizer (ForeignPtr Parallelizer')
--- typeclass decl
-class ParallelizerClass a where
-  castParallelizer :: a -> Parallelizer
-instance ParallelizerClass Parallelizer where
-  castParallelizer = id
-
--- baseclass instances
-instance FunctionClass Parallelizer where
-  castFunction (Parallelizer x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass Parallelizer where
-  castOptionsFunctionality (Parallelizer x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass Parallelizer where
-  castPrintableObject (Parallelizer x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass Parallelizer where
-  castSharedObject (Parallelizer x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass Parallelizer where
-  castIOInterfaceFunction (Parallelizer x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal Parallelizer (Ptr Parallelizer') where
-  marshal (Parallelizer x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (Parallelizer x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__Parallelizer" 
-  c_delete_casadi__Parallelizer :: FunPtr (Ptr Parallelizer' -> IO ())
-instance WrapReturn (Ptr Parallelizer') Parallelizer where
-  wrapReturn = (fmap Parallelizer) . (newForeignPtr c_delete_casadi__Parallelizer)
-
-
--- raw decl
-data PrintableObject'
--- data decl
-{-|
->Base class for objects that have a natural string representation.
->
->Joel Andersson
->
->C++ includes: printable_object.hpp 
--}
-newtype PrintableObject = PrintableObject (ForeignPtr PrintableObject')
--- typeclass decl
-class PrintableObjectClass a where
-  castPrintableObject :: a -> PrintableObject
-instance PrintableObjectClass PrintableObject where
-  castPrintableObject = id
-
--- baseclass instances
-
--- helper instances
-instance Marshal PrintableObject (Ptr PrintableObject') where
-  marshal (PrintableObject x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (PrintableObject x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__PrintableObject" 
-  c_delete_casadi__PrintableObject :: FunPtr (Ptr PrintableObject' -> IO ())
-instance WrapReturn (Ptr PrintableObject') PrintableObject where
-  wrapReturn = (fmap PrintableObject) . (newForeignPtr c_delete_casadi__PrintableObject)
-
-
--- raw decl
-data QCQPSolver'
--- data decl
-{-|
->QCQPSolver.
->
->Solves the following strictly convex problem:
->
->min          1/2 x' H x + g' x x  subject to 1/2 x' Pi x  +  qi' x + ri  <=
->0   for i=0..nq-1 LBA <= A x <= UBA LBX <= x   <= UBX  with : H, Pi sparse
->(n x n) positive definite g, qi dense  (n x 1) ri scalar n: number of
->decision variables (x) nc: number of linear constraints (A) nq: number of
->quadratic constraints
->
->If H, Pi is not positive-definite, the solver should throw an error.
->
->Joris Gillis
->
->>Input scheme: casadi::QCQPSolverInput (QCQP_SOLVER_NUM_IN = 13) [qcqpIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| QCQP_SOLVER_H          | h                      | The square matrix H:   |
->|                        |                        | sparse, (n x n). Only  |
->|                        |                        | the lower triangular   |
->|                        |                        | part is actually used. |
->|                        |                        | The matrix is assumed  |
->|                        |                        | to be symmetrical.     |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_G          | g                      | The vector g: dense,   |
->|                        |                        | (n x 1) .              |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_P          | p                      | The horizontal stack   |
->|                        |                        | of all Pi. Each Pi is  |
->|                        |                        | sparse (n x n). Only   |
->|                        |                        | the lower triangular   |
->|                        |                        | part is actually used. |
->|                        |                        | The matrix is assumed  |
->|                        |                        | to be symmetrical.     |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_Q          | q                      | The vertical stack of  |
->|                        |                        | all qi: dense, (nq n x |
->|                        |                        | 1) .                   |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_R          | r                      | The vertical stack of  |
->|                        |                        | all scalars ri (nq x   |
->|                        |                        | 1) .                   |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_A          | a                      | The matrix A: sparse,  |
->|                        |                        | (nc x n) - product     |
->|                        |                        | with x must be dense.  |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_LBA        | lba                    | dense, (nc x 1)        |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_UBA        | uba                    | dense, (nc x 1)        |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_LBX        | lbx                    | dense, (n x 1)         |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_UBX        | ubx                    | dense, (n x 1)         |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_X0         | x0                     | dense, (n x 1)         |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_LAM_X0     | lam_x0                 | dense                  |
->+------------------------+------------------------+------------------------+
->
->>Output scheme: casadi::QCQPSolverOutput (QCQP_SOLVER_NUM_OUT = 5) [qcqpOut]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| QCQP_SOLVER_X          | x                      | The primal solution .  |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_COST       | cost                   | The optimal cost .     |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_LAM_A      | lam_a                  | The dual solution      |
->|                        |                        | corresponding to       |
->|                        |                        | linear bounds .        |
->+------------------------+------------------------+------------------------+
->| QCQP_SOLVER_LAM_X      | lam_x                  | The dual solution      |
->|                        |                        | corresponding to       |
->|                        |                        | simple bounds .        |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: qcqp_solver.hpp 
--}
-newtype QCQPSolver = QCQPSolver (ForeignPtr QCQPSolver')
--- typeclass decl
-class QCQPSolverClass a where
-  castQCQPSolver :: a -> QCQPSolver
-instance QCQPSolverClass QCQPSolver where
-  castQCQPSolver = id
-
--- baseclass instances
-instance FunctionClass QCQPSolver where
-  castFunction (QCQPSolver x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass QCQPSolver where
-  castOptionsFunctionality (QCQPSolver x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass QCQPSolver where
-  castPrintableObject (QCQPSolver x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass QCQPSolver where
-  castSharedObject (QCQPSolver x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass QCQPSolver where
-  castIOInterfaceFunction (QCQPSolver x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal QCQPSolver (Ptr QCQPSolver') where
-  marshal (QCQPSolver x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (QCQPSolver x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__QCQPSolver" 
-  c_delete_casadi__QCQPSolver :: FunPtr (Ptr QCQPSolver' -> IO ())
-instance WrapReturn (Ptr QCQPSolver') QCQPSolver where
-  wrapReturn = (fmap QCQPSolver) . (newForeignPtr c_delete_casadi__QCQPSolver)
-
-
--- raw decl
-data QPSolver'
--- data decl
-{-|
->QPSolver.
->
->Solves the following strictly convex problem:
->
->min          1/2 x' H x + g' x  x  subject to             LBA <= A x <= UBA
->LBX <= x   <= UBX      with :       H sparse (n x n) positive definite
->g dense  (n x 1)      n: number of decision variables (x)     nc: number of
->constraints (A)
->
->If H is not positive-definite, the solver should throw an error.
->
->Joel Andersson
->
->>Input scheme: casadi::QPSolverInput (QP_SOLVER_NUM_IN = 10) [qpIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| QP_SOLVER_H            | h                      | The square matrix H:   |
->|                        |                        | sparse, (n x n). Only  |
->|                        |                        | the lower triangular   |
->|                        |                        | part is actually used. |
->|                        |                        | The matrix is assumed  |
->|                        |                        | to be symmetrical.     |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_G            | g                      | The vector g: dense,   |
->|                        |                        | (n x 1) .              |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_A            | a                      | The matrix A: sparse,  |
->|                        |                        | (nc x n) - product     |
->|                        |                        | with x must be dense.  |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_LBA          | lba                    | dense, (nc x 1)        |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_UBA          | uba                    | dense, (nc x 1)        |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_LBX          | lbx                    | dense, (n x 1)         |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_UBX          | ubx                    | dense, (n x 1)         |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_X0           | x0                     | dense, (n x 1)         |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_LAM_X0       | lam_x0                 | dense                  |
->+------------------------+------------------------+------------------------+
->
->>Output scheme: casadi::QPSolverOutput (QP_SOLVER_NUM_OUT = 5) [qpOut]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| QP_SOLVER_X            | x                      | The primal solution .  |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_COST         | cost                   | The optimal cost .     |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_LAM_A        | lam_a                  | The dual solution      |
->|                        |                        | corresponding to       |
->|                        |                        | linear bounds .        |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_LAM_X        | lam_x                  | The dual solution      |
->|                        |                        | corresponding to       |
->|                        |                        | simple bounds .        |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: qp_solver.hpp 
--}
-newtype QPSolver = QPSolver (ForeignPtr QPSolver')
--- typeclass decl
-class QPSolverClass a where
-  castQPSolver :: a -> QPSolver
-instance QPSolverClass QPSolver where
-  castQPSolver = id
-
--- baseclass instances
-instance FunctionClass QPSolver where
-  castFunction (QPSolver x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass QPSolver where
-  castOptionsFunctionality (QPSolver x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass QPSolver where
-  castPrintableObject (QPSolver x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass QPSolver where
-  castSharedObject (QPSolver x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass QPSolver where
-  castIOInterfaceFunction (QPSolver x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal QPSolver (Ptr QPSolver') where
-  marshal (QPSolver x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (QPSolver x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__QPSolver" 
-  c_delete_casadi__QPSolver :: FunPtr (Ptr QPSolver' -> IO ())
-instance WrapReturn (Ptr QPSolver') QPSolver where
-  wrapReturn = (fmap QPSolver) . (newForeignPtr c_delete_casadi__QPSolver)
-
-
--- raw decl
-data SDPSolver'
--- data decl
-{-|
->SDPSolver.
->
->Solves an SDP problem in standard form.
->Seehttp://sdpa.indsys.chuo-u.ac.jp/sdpa/files/sdpa-c.6.2.0.manual.pdf
->
->Primal:
->
->min          c' x x subject to P = Sum_i^m F_i x_i - G P negative
->semidefinite  LBA <= A x <= UBA LBX <= x   <= UBX  with x ( n x 1) c ( n x 1
->) G, F_i  sparse symmetric (m x m) X dense symmetric ( m x m ) A sparse
->matrix ( nc x n) LBA, UBA dense vector (nc x 1) LBX, UBX dense vector (n x
->1)
->
->This formulation is chosen as primal, because it does not call for a large
->decision variable space.
->
->Dual:
->
->max          trace(G Y) Y  subject to trace(F_i Y) = c_i Y positive
->semidefinite  with Y dense symmetric ( m x m)
->
->On generality: you might have formulation with block partitioning:
->
->Primal:
->
->min          c' x x subject to Pj = Sum_i^m F_ij x_i - gj   for all j Pj
->negative semidefinite   for all j  with x ( n x 1) c ( n x 1 ) G, F_i
->sparse symmetric (m x m) X dense symmetric ( m x m )
->
->Dual:max          Sum_j trace(Gj Yj) Yj  subject to Sum_j trace(F_ij Yj) =
->c_i   for all j Yj positive semidefinite     for all j  with Y dense
->symmetric ( m x m)
->
->You can cast this into the standard form with: G = blkdiag(Gj for all j) Fi
->= blkdiag(F_ij for all j)
->
->Implementations of SDPSolver are encouraged to exploit this block structure.
->
->Joel Andersson
->
->>Input scheme: casadi::SDPInput (SDP_SOLVER_NUM_IN = 9) [sdpIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| SDP_SOLVER_F           | f                      | The horizontal stack   |
->|                        |                        | of all matrices F_i: ( |
->|                        |                        | m x nm) .              |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_C           | c                      | The vector c: ( n x 1) |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_G           | g                      | The matrix G: ( m x m) |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_A           | a                      | The matrix A: ( nc x   |
->|                        |                        | n) .                   |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_LBA         | lba                    | Lower bounds on Ax (   |
->|                        |                        | nc x 1) .              |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_UBA         | uba                    | Upper bounds on Ax (   |
->|                        |                        | nc x 1) .              |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_LBX         | lbx                    | Lower bounds on x ( n  |
->|                        |                        | x 1 ) .                |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_UBX         | ubx                    | Upper bounds on x ( n  |
->|                        |                        | x 1 ) .                |
->+------------------------+------------------------+------------------------+
->
->>Output scheme: casadi::SDPOutput (SDP_SOLVER_NUM_OUT = 8) [sdpOut]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| SDP_SOLVER_X           | x                      | The primal solution (n |
->|                        |                        | x 1) - may be used as  |
->|                        |                        | initial guess .        |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_P           | p                      | The solution P (m x m) |
->|                        |                        | - may be used as       |
->|                        |                        | initial guess .        |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_DUAL        | dual                   | The dual solution (m x |
->|                        |                        | m) - may be used as    |
->|                        |                        | initial guess .        |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_COST        | cost                   | The primal optimal     |
->|                        |                        | cost (1 x 1) .         |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_DUAL_COST   | dual_cost              | The dual optimal cost  |
->|                        |                        | (1 x 1) .              |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_LAM_A       | lam_a                  | The dual solution      |
->|                        |                        | corresponding to the   |
->|                        |                        | linear constraints (nc |
->|                        |                        | x 1) .                 |
->+------------------------+------------------------+------------------------+
->| SDP_SOLVER_LAM_X       | lam_x                  | The dual solution      |
->|                        |                        | corresponding to       |
->|                        |                        | simple bounds (n x 1)  |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| calc_dual    | OT_BOOLEAN   | true         | Indicate if  | casadi::SDPS |
->|              |              |              | dual should  | olverInterna |
->|              |              |              | be allocated | l            |
->|              |              |              | and          |              |
->|              |              |              | calculated.  |              |
->|              |              |              | You may want |              |
->|              |              |              | to avoid     |              |
->|              |              |              | calculating  |              |
->|              |              |              | this         |              |
->|              |              |              | variable for |              |
->|              |              |              | problems     |              |
->|              |              |              | with n       |              |
->|              |              |              | large, as is |              |
->|              |              |              | always dense |              |
->|              |              |              | (m x m).     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| calc_p       | OT_BOOLEAN   | true         | Indicate if  | casadi::SDPS |
->|              |              |              | the P-part   | olverInterna |
->|              |              |              | of primal    | l            |
->|              |              |              | solution     |              |
->|              |              |              | should be    |              |
->|              |              |              | allocated    |              |
->|              |              |              | and          |              |
->|              |              |              | calculated.  |              |
->|              |              |              | You may want |              |
->|              |              |              | to avoid     |              |
->|              |              |              | calculating  |              |
->|              |              |              | this         |              |
->|              |              |              | variable for |              |
->|              |              |              | problems     |              |
->|              |              |              | with n       |              |
->|              |              |              | large, as is |              |
->|              |              |              | always dense |              |
->|              |              |              | (m x m).     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| print_proble | OT_BOOLEAN   | false        | Print out    | casadi::SDPS |
->| m            |              |              | problem      | olverInterna |
->|              |              |              | statement    | l            |
->|              |              |              | for          |              |
->|              |              |              | debugging.   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: sdp_solver.hpp 
--}
-newtype SDPSolver = SDPSolver (ForeignPtr SDPSolver')
--- typeclass decl
-class SDPSolverClass a where
-  castSDPSolver :: a -> SDPSolver
-instance SDPSolverClass SDPSolver where
-  castSDPSolver = id
-
--- baseclass instances
-instance FunctionClass SDPSolver where
-  castFunction (SDPSolver x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass SDPSolver where
-  castOptionsFunctionality (SDPSolver x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass SDPSolver where
-  castPrintableObject (SDPSolver x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass SDPSolver where
-  castSharedObject (SDPSolver x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass SDPSolver where
-  castIOInterfaceFunction (SDPSolver x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal SDPSolver (Ptr SDPSolver') where
-  marshal (SDPSolver x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (SDPSolver x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__SDPSolver" 
-  c_delete_casadi__SDPSolver :: FunPtr (Ptr SDPSolver' -> IO ())
-instance WrapReturn (Ptr SDPSolver') SDPSolver where
-  wrapReturn = (fmap SDPSolver) . (newForeignPtr c_delete_casadi__SDPSolver)
-
-
--- raw decl
-data SDQPSolver'
--- data decl
-{-|
->SDQPSolver.
->
->Same as an SDPSolver, but with a quadratic objective 1/2 x' H x
->
->Joel Andersson
->
->>Input scheme: casadi::SDQPInput (SDQP_SOLVER_NUM_IN = 10) [sdqpIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| SDQP_SOLVER_H          | h                      | The matrix H: sparse ( |
->|                        |                        | n x n) .               |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_C          | c                      | The vector c: ( n x 1) |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_F          | f                      | The horizontal stack   |
->|                        |                        | of all matrices F_i: ( |
->|                        |                        | m x nm) .              |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_G          | g                      | The matrix G: ( m x m) |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_A          | a                      | The matrix A: ( nc x   |
->|                        |                        | n) .                   |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_LBA        | lba                    | Lower bounds on Ax (   |
->|                        |                        | nc x 1) .              |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_UBA        | uba                    | Upper bounds on Ax (   |
->|                        |                        | nc x 1) .              |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_LBX        | lbx                    | Lower bounds on x ( n  |
->|                        |                        | x 1 ) .                |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_UBX        | ubx                    | Upper bounds on x ( n  |
->|                        |                        | x 1 ) .                |
->+------------------------+------------------------+------------------------+
->
->>Output scheme: casadi::SDQPOutput (SDQP_SOLVER_NUM_OUT = 8) [sdqpOut]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| SDQP_SOLVER_X          | x                      | The primal solution (n |
->|                        |                        | x 1) - may be used as  |
->|                        |                        | initial guess .        |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_P          | p                      | The solution P (m x m) |
->|                        |                        | - may be used as       |
->|                        |                        | initial guess .        |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_DUAL       | dual                   | The dual solution (m x |
->|                        |                        | m) - may be used as    |
->|                        |                        | initial guess .        |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_COST       | cost                   | The primal optimal     |
->|                        |                        | cost (1 x 1) .         |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_DUAL_COST  | dual_cost              | The dual optimal cost  |
->|                        |                        | (1 x 1) .              |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_LAM_A      | lam_a                  | The dual solution      |
->|                        |                        | corresponding to the   |
->|                        |                        | linear constraints (nc |
->|                        |                        | x 1) .                 |
->+------------------------+------------------------+------------------------+
->| SDQP_SOLVER_LAM_X      | lam_x                  | The dual solution      |
->|                        |                        | corresponding to       |
->|                        |                        | simple bounds (n x 1)  |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| sdp_solver   | OT_STRING    | GenericType( | The          | casadi::SDQP |
->|              |              | )            | SDQPSolver   | SolverIntern |
->|              |              |              | used to      | al           |
->|              |              |              | solve the    |              |
->|              |              |              | SDPs.        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| sdp_solver_o | OT_DICTIONAR | GenericType( | Options to   | casadi::SDQP |
->| ptions       | Y            | )            | be passed to | SolverIntern |
->|              |              |              | the          | al           |
->|              |              |              | SDPSOlver    |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: sdqp_solver.hpp 
--}
-newtype SDQPSolver = SDQPSolver (ForeignPtr SDQPSolver')
--- typeclass decl
-class SDQPSolverClass a where
-  castSDQPSolver :: a -> SDQPSolver
-instance SDQPSolverClass SDQPSolver where
-  castSDQPSolver = id
-
--- baseclass instances
-instance FunctionClass SDQPSolver where
-  castFunction (SDQPSolver x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass SDQPSolver where
-  castOptionsFunctionality (SDQPSolver x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass SDQPSolver where
-  castPrintableObject (SDQPSolver x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass SDQPSolver where
-  castSharedObject (SDQPSolver x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass SDQPSolver where
-  castIOInterfaceFunction (SDQPSolver x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal SDQPSolver (Ptr SDQPSolver') where
-  marshal (SDQPSolver x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (SDQPSolver x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__SDQPSolver" 
-  c_delete_casadi__SDQPSolver :: FunPtr (Ptr SDQPSolver' -> IO ())
-instance WrapReturn (Ptr SDQPSolver') SDQPSolver where
-  wrapReturn = (fmap SDQPSolver) . (newForeignPtr c_delete_casadi__SDQPSolver)
-
-
--- raw decl
-data SOCPSolver'
--- data decl
-{-|
->SOCPSolver.
->
->Solves an Second Order Cone Programming (SOCP) problem in standard form.
->
->Primal:
->
->min          c' x x subject to || Gi' x + hi ||_2 <= ei' x + fi  i = 1..m
->LBA <= A x <= UBA LBX <= x   <= UBX  with x ( n x 1) c ( n x 1 ) Gi  sparse
->(n x ni) hi  dense (ni x 1) ei  dense (n x 1) fi  dense (1 x 1) N = Sum_i^m
->ni A sparse (nc x n) LBA, UBA dense vector (nc x 1) LBX, UBX dense vector (n
->x 1)
->
->Joris Gillis
->
->>Input scheme: casadi::SOCPInput (SOCP_SOLVER_NUM_IN = 11) [socpIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| SOCP_SOLVER_G          | g                      | The horizontal stack   |
->|                        |                        | of all matrices Gi: (  |
->|                        |                        | n x N) .               |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_H          | h                      | The vertical stack of  |
->|                        |                        | all vectors hi: ( N x  |
->|                        |                        | 1) .                   |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_E          | e                      | The vertical stack of  |
->|                        |                        | all vectors ei: ( nm x |
->|                        |                        | 1) .                   |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_F          | f                      | The vertical stack of  |
->|                        |                        | all scalars fi: ( m x  |
->|                        |                        | 1) .                   |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_C          | c                      | The vector c: ( n x 1) |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_A          | a                      | The matrix A: ( nc x   |
->|                        |                        | n) .                   |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_LBA        | lba                    | Lower bounds on Ax (   |
->|                        |                        | nc x 1) .              |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_UBA        | uba                    | Upper bounds on Ax (   |
->|                        |                        | nc x 1) .              |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_LBX        | lbx                    | Lower bounds on x ( n  |
->|                        |                        | x 1 ) .                |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_UBX        | ubx                    | Upper bounds on x ( n  |
->|                        |                        | x 1 ) .                |
->+------------------------+------------------------+------------------------+
->
->>Output scheme: casadi::SOCPOutput (SOCP_SOLVER_NUM_OUT = 5) [socpOut]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| SOCP_SOLVER_X          | x                      | The primal solution (n |
->|                        |                        | x 1) .                 |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_COST       | cost                   | The primal optimal     |
->|                        |                        | cost (1 x 1) .         |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_LAM_A      | lam_a                  | The dual solution      |
->|                        |                        | corresponding to the   |
->|                        |                        | linear constraints (nc |
->|                        |                        | x 1) .                 |
->+------------------------+------------------------+------------------------+
->| SOCP_SOLVER_LAM_X      | lam_x                  | The dual solution      |
->|                        |                        | corresponding to       |
->|                        |                        | simple bounds (n x 1)  |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| ni           | OT_INTEGERVE | GenericType( | Provide the  | casadi::SOCP |
->|              | CTOR         | )            | size of each | SolverIntern |
->|              |              |              | SOC          | al           |
->|              |              |              | constraint.  |              |
->|              |              |              | Must sum up  |              |
->|              |              |              | to N.        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| print_proble | OT_BOOLEAN   | false        | Print out    | casadi::SOCP |
->| m            |              |              | problem      | SolverIntern |
->|              |              |              | statement    | al           |
->|              |              |              | for          |              |
->|              |              |              | debugging.   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: socp_solver.hpp 
--}
-newtype SOCPSolver = SOCPSolver (ForeignPtr SOCPSolver')
--- typeclass decl
-class SOCPSolverClass a where
-  castSOCPSolver :: a -> SOCPSolver
-instance SOCPSolverClass SOCPSolver where
-  castSOCPSolver = id
-
--- baseclass instances
-instance FunctionClass SOCPSolver where
-  castFunction (SOCPSolver x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass SOCPSolver where
-  castOptionsFunctionality (SOCPSolver x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass SOCPSolver where
-  castPrintableObject (SOCPSolver x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass SOCPSolver where
-  castSharedObject (SOCPSolver x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass SOCPSolver where
-  castIOInterfaceFunction (SOCPSolver x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal SOCPSolver (Ptr SOCPSolver') where
-  marshal (SOCPSolver x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (SOCPSolver x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__SOCPSolver" 
-  c_delete_casadi__SOCPSolver :: FunPtr (Ptr SOCPSolver' -> IO ())
-instance WrapReturn (Ptr SOCPSolver') SOCPSolver where
-  wrapReturn = (fmap SOCPSolver) . (newForeignPtr c_delete_casadi__SOCPSolver)
-
-
--- raw decl
-data SX'
--- data decl
-{-|
--}
-newtype SX = SX (ForeignPtr SX')
--- typeclass decl
-class SXClass a where
-  castSX :: a -> SX
-instance SXClass SX where
-  castSX = id
-
--- baseclass instances
-instance PrintableObjectClass SX where
-  castPrintableObject (SX x) = PrintableObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal SX (Ptr SX') where
-  marshal (SX x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (SX x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__SX" 
-  c_delete_casadi__SX :: FunPtr (Ptr SX' -> IO ())
-instance WrapReturn (Ptr SX') SX where
-  wrapReturn = (fmap SX) . (newForeignPtr c_delete_casadi__SX)
-
-
--- raw decl
-data SXElement'
--- data decl
-{-|
--}
-newtype SXElement = SXElement (ForeignPtr SXElement')
--- typeclass decl
-class SXElementClass a where
-  castSXElement :: a -> SXElement
-instance SXElementClass SXElement where
-  castSXElement = id
-
--- baseclass instances
-
--- helper instances
-instance Marshal SXElement (Ptr SXElement') where
-  marshal (SXElement x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (SXElement x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__SXElement" 
-  c_delete_casadi__SXElement :: FunPtr (Ptr SXElement' -> IO ())
-instance WrapReturn (Ptr SXElement') SXElement where
-  wrapReturn = (fmap SXElement) . (newForeignPtr c_delete_casadi__SXElement)
-
-
--- raw decl
-data SXFunction'
--- data decl
-{-|
->Dynamically created function that can be expanded into a series of scalar
->operations.
->
->Joel Andersson
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| just_in_time | OT_BOOLEAN   | false        | Just-in-time | casadi::SXFu |
->| _opencl      |              |              | compilation  | nctionIntern |
->|              |              |              | for numeric  | al           |
->|              |              |              | evaluation   |              |
->|              |              |              | using OpenCL |              |
->|              |              |              | (experimenta |              |
->|              |              |              | l)           |              |
->+--------------+--------------+--------------+--------------+--------------+
->| just_in_time | OT_BOOLEAN   | false        | Propagate    | casadi::SXFu |
->| _sparsity    |              |              | sparsity     | nctionIntern |
->|              |              |              | patterns     | al           |
->|              |              |              | using just-  |              |
->|              |              |              | in-time      |              |
->|              |              |              | compilation  |              |
->|              |              |              | to a CPU or  |              |
->|              |              |              | GPU using    |              |
->|              |              |              | OpenCL       |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: sx_function.hpp 
--}
-newtype SXFunction = SXFunction (ForeignPtr SXFunction')
--- typeclass decl
-class SXFunctionClass a where
-  castSXFunction :: a -> SXFunction
-instance SXFunctionClass SXFunction where
-  castSXFunction = id
-
--- baseclass instances
-instance FunctionClass SXFunction where
-  castFunction (SXFunction x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass SXFunction where
-  castOptionsFunctionality (SXFunction x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass SXFunction where
-  castPrintableObject (SXFunction x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass SXFunction where
-  castSharedObject (SXFunction x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass SXFunction where
-  castIOInterfaceFunction (SXFunction x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal SXFunction (Ptr SXFunction') where
-  marshal (SXFunction x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (SXFunction x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__SXFunction" 
-  c_delete_casadi__SXFunction :: FunPtr (Ptr SXFunction' -> IO ())
-instance WrapReturn (Ptr SXFunction') SXFunction where
-  wrapReturn = (fmap SXFunction) . (newForeignPtr c_delete_casadi__SXFunction)
-
-
--- raw decl
-data SharedObject'
--- data decl
-{-|
->SharedObject implements a reference counting framework similar for efficient
->and easily-maintained memory management.
->
->To use the class, both the SharedObject class (the public class), and the
->SharedObjectNode class (the internal class) must be inherited from. It can
->be done in two different files and together with memory management, this
->approach provides a clear distinction of which methods of the class are to
->be considered "public", i.e. methods for public use that can be considered
->to remain over time with small changes, and the internal memory.
->
->When interfacing a software, which typically includes including some header
->file, this is best done only in the file where the internal class is
->defined, to avoid polluting the global namespace and other side effects.
->
->The default constructor always means creating a null pointer to an internal
->class only. To allocate an internal class (this works only when the internal
->class isn't abstract), use the constructor with arguments.
->
->The copy constructor and the assignment operator perform shallow copies
->only, to make a deep copy you must use the clone method explicitly. This
->will give a shared pointer instance.
->
->In an inheritance hierarchy, you can cast down automatically, e.g. (
->SXFunction is a child class of Function): SXFunction derived(...); Function
->base = derived;
->
->To cast up, use the shared_cast template function, which works analogously
->to dynamic_cast, static_cast, const_cast etc, e.g.: SXFunction derived(...);
->Function base = derived; SXFunction derived_from_base =
->shared_cast<SXFunction>(base);
->
->A failed shared_cast will result in a null pointer (cf. dynamic_cast)
->
->Joel Andersson
->
->C++ includes: shared_object.hpp 
--}
-newtype SharedObject = SharedObject (ForeignPtr SharedObject')
--- typeclass decl
-class SharedObjectClass a where
-  castSharedObject :: a -> SharedObject
-instance SharedObjectClass SharedObject where
-  castSharedObject = id
-
--- baseclass instances
-instance PrintableObjectClass SharedObject where
-  castPrintableObject (SharedObject x) = PrintableObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal SharedObject (Ptr SharedObject') where
-  marshal (SharedObject x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (SharedObject x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__SharedObject" 
-  c_delete_casadi__SharedObject :: FunPtr (Ptr SharedObject' -> IO ())
-instance WrapReturn (Ptr SharedObject') SharedObject where
-  wrapReturn = (fmap SharedObject) . (newForeignPtr c_delete_casadi__SharedObject)
-
-
--- raw decl
-data Simulator'
--- data decl
-{-|
->Integrator class.
->
->An "simulator" integrates an IVP, stopping at a (fixed) number of grid
->points and evaluates a set of output functions at these points. The internal
->stepsizes of the integrator need not coincide with the gridpoints.
->
->Simulator is an casadi::Function mapping from casadi::IntegratorInput to n.
->\\\\
->
->The output function needs to be a mapping from casadi::DAEInput to n. The
->default output has n=1 and the output is the (vectorized) differential state
->for each time step.
->
->Joel Andersson
->
->>Input scheme: casadi::IntegratorInput (INTEGRATOR_NUM_IN = 7) [integratorIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| INTEGRATOR_X0          | x0                     | Differential state at  |
->|                        |                        | the initial time .     |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_P           | p                      | Parameters .           |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_Z0          | z0                     | Initial guess for the  |
->|                        |                        | algebraic variable .   |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_RX0         | rx0                    | Backward differential  |
->|                        |                        | state at the final     |
->|                        |                        | time .                 |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_RP          | rp                     | Backward parameter     |
->|                        |                        | vector .               |
->+------------------------+------------------------+------------------------+
->| INTEGRATOR_RZ0         | rz0                    | Initial guess for the  |
->|                        |                        | backwards algebraic    |
->|                        |                        | variable .             |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp | casadi::Simu |
->|              |              |              | uts)  (initi | latorInterna |
->|              |              |              | al|step)     | l            |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->>List of available monitors
->+---------+---------------------------+
->|   Id    |          Used in          |
->+=========+===========================+
->| initial | casadi::SimulatorInternal |
->+---------+---------------------------+
->| inputs  | casadi::FunctionInternal  |
->+---------+---------------------------+
->| outputs | casadi::FunctionInternal  |
->+---------+---------------------------+
->| step    | casadi::SimulatorInternal |
->+---------+---------------------------+
->
->Diagrams
->
->C++ includes: simulator.hpp 
--}
-newtype Simulator = Simulator (ForeignPtr Simulator')
--- typeclass decl
-class SimulatorClass a where
-  castSimulator :: a -> Simulator
-instance SimulatorClass Simulator where
-  castSimulator = id
-
--- baseclass instances
-instance FunctionClass Simulator where
-  castFunction (Simulator x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass Simulator where
-  castOptionsFunctionality (Simulator x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass Simulator where
-  castPrintableObject (Simulator x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass Simulator where
-  castSharedObject (Simulator x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass Simulator where
-  castIOInterfaceFunction (Simulator x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal Simulator (Ptr Simulator') where
-  marshal (Simulator x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (Simulator x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__Simulator" 
-  c_delete_casadi__Simulator :: FunPtr (Ptr Simulator' -> IO ())
-instance WrapReturn (Ptr Simulator') Simulator where
-  wrapReturn = (fmap Simulator) . (newForeignPtr c_delete_casadi__Simulator)
-
-
--- raw decl
-data Slice'
--- data decl
-{-|
->Class representing a Slice.
->
->Note that Python or Octave do not need to use this class. They can just use
->slicing utility from the host language ( M[0:6] in Python, M(1:7) )
->
->C++ includes: slice.hpp 
--}
-newtype Slice = Slice (ForeignPtr Slice')
--- typeclass decl
-class SliceClass a where
-  castSlice :: a -> Slice
-instance SliceClass Slice where
-  castSlice = id
-
--- baseclass instances
-instance PrintableObjectClass Slice where
-  castPrintableObject (Slice x) = PrintableObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal Slice (Ptr Slice') where
-  marshal (Slice x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (Slice x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__Slice" 
-  c_delete_casadi__Slice :: FunPtr (Ptr Slice' -> IO ())
-instance WrapReturn (Ptr Slice') Slice where
-  wrapReturn = (fmap Slice) . (newForeignPtr c_delete_casadi__Slice)
-
-
--- raw decl
-data Sparsity'
--- data decl
-{-|
->General sparsity class.
->
->The storage format is a compressed column storage (CCS) format.  In this
->format, the structural non-zero elements are stored in column-major order,
->starting from the upper left corner of the matrix and ending in the lower
->right corner.
->
->In addition to the dimension ( size1(), size2()), (i.e. the number of rows
->and the number of columns respectively), there are also two vectors of
->integers:
->
->"colind" [length size2()+1], which contains the index to the first non-
->zero element on or after the corresponding column. All the non-zero elements
->of a particular i are thus the elements with index el that fulfills:
->colind[i] <= el < colind[i+1].
->
->"row" [same length as the number of non-zero elements, size()] The rows
->for each of the structural non-zeros.
->
->Note that with this format, it is cheap to loop over all the non-zero
->elements of a particular column, at constant time per element, but expensive
->to jump to access a location (i, j).
->
->If the matrix is dense, i.e. length(row) == size1()*size2(), the format
->reduces to standard dense column major format, which allows access to an
->arbitrary element in constant time.
->
->Since the object is reference counted (it inherits from SharedObject),
->several matrices are allowed to share the same sparsity pattern.
->
->The implementations of some methods of this class has been taken from the
->CSparse package and modified to use C++ standard library and CasADi data
->structures.
->
->See:   Matrix
->
->Joel Andersson
->
->C++ includes: sparsity.hpp 
--}
-newtype Sparsity = Sparsity (ForeignPtr Sparsity')
--- typeclass decl
-class SparsityClass a where
-  castSparsity :: a -> Sparsity
-instance SparsityClass Sparsity where
-  castSparsity = id
-
--- baseclass instances
-instance PrintableObjectClass Sparsity where
-  castPrintableObject (Sparsity x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass Sparsity where
-  castSharedObject (Sparsity x) = SharedObject (castForeignPtr x)
-
-
--- helper instances
-instance Marshal Sparsity (Ptr Sparsity') where
-  marshal (Sparsity x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (Sparsity x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__Sparsity" 
-  c_delete_casadi__Sparsity :: FunPtr (Ptr Sparsity' -> IO ())
-instance WrapReturn (Ptr Sparsity') Sparsity where
-  wrapReturn = (fmap Sparsity) . (newForeignPtr c_delete_casadi__Sparsity)
-
-
--- raw decl
-data StabilizedQPSolver'
--- data decl
-{-|
->StabilizedQPSolver.
->
->Solves the following strictly convex problem:
->
->min          1/2 x' H x + g' x x  subject to LBA <= A x <= UBA LBX <= x   <=
->UBX  with : H sparse (n x n) positive definite g dense  (n x 1) n: number of
->decision variables (x) nc: number of constraints (A)
->
->If H is not positive-definite, the solver should throw an error.
->
->Joel Andersson
->
->>Input scheme: casadi::StabilizedQPSolverInput (STABILIZED_QP_SOLVER_NUM_IN = 13) [stabilizedQpIn]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| STABILIZED_QP_SOLVER_H | h                      | The square matrix H:   |
->|                        |                        | sparse, (n x n). Only  |
->|                        |                        | the lower triangular   |
->|                        |                        | part is actually used. |
->|                        |                        | The matrix is assumed  |
->|                        |                        | to be symmetrical.     |
->+------------------------+------------------------+------------------------+
->| STABILIZED_QP_SOLVER_G | g                      | The vector g: dense,   |
->|                        |                        | (n x 1) .              |
->+------------------------+------------------------+------------------------+
->| STABILIZED_QP_SOLVER_A | a                      | The matrix A: sparse,  |
->|                        |                        | (nc x n) - product     |
->|                        |                        | with x must be dense.  |
->|                        |                        | .                      |
->+------------------------+------------------------+------------------------+
->| STABILIZED_QP_SOLVER_L | lba                    | dense, (nc x 1)        |
->| BA                     |                        |                        |
->+------------------------+------------------------+------------------------+
->| STABILIZED_QP_SOLVER_U | uba                    | dense, (nc x 1)        |
->| BA                     |                        |                        |
->+------------------------+------------------------+------------------------+
->| STABILIZED_QP_SOLVER_L | lbx                    | dense, (n x 1)         |
->| BX                     |                        |                        |
->+------------------------+------------------------+------------------------+
->| STABILIZED_QP_SOLVER_U | ubx                    | dense, (n x 1)         |
->| BX                     |                        |                        |
->+------------------------+------------------------+------------------------+
->| STABILIZED_QP_SOLVER_X | x0                     | dense, (n x 1)         |
->| 0                      |                        |                        |
->+------------------------+------------------------+------------------------+
->| STABILIZED_QP_SOLVER_L | lam_x0                 | dense                  |
->| AM_X0                  |                        |                        |
->+------------------------+------------------------+------------------------+
->| STABILIZED_QP_SOLVER_M | muR                    | dense (1 x 1)          |
->| UR                     |                        |                        |
->+------------------------+------------------------+------------------------+
->| STABILIZED_QP_SOLVER_M | muE                    | dense (nc x 1)         |
->| UE                     |                        |                        |
->+------------------------+------------------------+------------------------+
->| STABILIZED_QP_SOLVER_M | mu                     | dense (nc x 1)         |
->| U                      |                        |                        |
->+------------------------+------------------------+------------------------+
->
->>Output scheme: casadi::QPSolverOutput (QP_SOLVER_NUM_OUT = 5) [qpOut]
->+------------------------+------------------------+------------------------+
->|       Full name        |         Short          |      Description       |
->+========================+========================+========================+
->| QP_SOLVER_X            | x                      | The primal solution .  |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_COST         | cost                   | The optimal cost .     |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_LAM_A        | lam_a                  | The dual solution      |
->|                        |                        | corresponding to       |
->|                        |                        | linear bounds .        |
->+------------------------+------------------------+------------------------+
->| QP_SOLVER_LAM_X        | lam_x                  | The dual solution      |
->|                        |                        | corresponding to       |
->|                        |                        | simple bounds .        |
->+------------------------+------------------------+------------------------+
->
->>List of available options
->+--------------+--------------+--------------+--------------+--------------+
->|      Id      |     Type     |   Default    | Description  |   Used in    |
->+==============+==============+==============+==============+==============+
->| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
->|              |              |              | calculate    | tionInternal |
->|              |              |              | the          |              |
->|              |              |              | Jacobians.   |              |
->|              |              |              | (forward:    |              |
->|              |              |              | only forward |              |
->|              |              |              | mode|reverse |              |
->|              |              |              | : only       |              |
->|              |              |              | adjoint mode |              |
->|              |              |              | |automatic:  |              |
->|              |              |              | a heuristic  |              |
->|              |              |              | decides      |              |
->|              |              |              | which is     |              |
->|              |              |              | more         |              |
->|              |              |              | appropriate) |              |
->+--------------+--------------+--------------+--------------+--------------+
->| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
->| enerator     | EGENERATOR   | )            | that returns | tionInternal |
->|              |              |              | a derivative |              |
->|              |              |              | function     |              |
->|              |              |              | given a      |              |
->|              |              |              | number of    |              |
->|              |              |              | forward and  |              |
->|              |              |              | reverse      |              |
->|              |              |              | directional  |              |
->|              |              |              | derivative,  |              |
->|              |              |              | overrides    |              |
->|              |              |              | internal     |              |
->|              |              |              | routines.    |              |
->|              |              |              | Check docume |              |
->|              |              |              | ntation of D |              |
->|              |              |              | erivativeGen |              |
->|              |              |              | erator .     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
->|              |              |              | indicate     | tionInternal |
->|              |              |              | whether      |              |
->|              |              |              | statistics   |              |
->|              |              |              | must be      |              |
->|              |              |              | gathered     |              |
->+--------------+--------------+--------------+--------------+--------------+
->| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->|              |              |              | exceptions   | tionInternal |
->|              |              |              | when the     |              |
->|              |              |              | numerical    |              |
->|              |              |              | values of    |              |
->|              |              |              | the inputs   |              |
->|              |              |              | don't make   |              |
->|              |              |              | sense        |              |
->+--------------+--------------+--------------+--------------+--------------+
->| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
->|              | TOR          | )            | be activated | tionInternal |
->|              |              |              | (inputs|outp |              |
->|              |              |              | uts)         |              |
->+--------------+--------------+--------------+--------------+--------------+
->| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
->|              |              | red_object"  | object       | onsFunctiona |
->|              |              |              |              | lityNode     |
->+--------------+--------------+--------------+--------------+--------------+
->| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
->| heck         |              |              | exceptions   | tionInternal |
->|              |              |              | when NaN or  |              |
->|              |              |              | Inf appears  |              |
->|              |              |              | during       |              |
->|              |              |              | evaluation   |              |
->+--------------+--------------+--------------+--------------+--------------+
->| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
->|              |              | )            | defined      | tionInternal |
->|              |              |              | field that   |              |
->|              |              |              | can be used  |              |
->|              |              |              | to identify  |              |
->|              |              |              | the function |              |
->|              |              |              | or pass      |              |
->|              |              |              | additional   |              |
->|              |              |              | information  |              |
->+--------------+--------------+--------------+--------------+--------------+
->| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
->|              |              |              | evaluation   | tionInternal |
->|              |              |              | for          |              |
->|              |              |              | debugging    |              |
->+--------------+--------------+--------------+--------------+--------------+
->
->Diagrams
->
->C++ includes: stabilized_qp_solver.hpp 
--}
-newtype StabilizedQPSolver = StabilizedQPSolver (ForeignPtr StabilizedQPSolver')
--- typeclass decl
-class StabilizedQPSolverClass a where
-  castStabilizedQPSolver :: a -> StabilizedQPSolver
-instance StabilizedQPSolverClass StabilizedQPSolver where
-  castStabilizedQPSolver = id
-
--- baseclass instances
-instance FunctionClass StabilizedQPSolver where
-  castFunction (StabilizedQPSolver x) = Function (castForeignPtr x)
-
-instance OptionsFunctionalityClass StabilizedQPSolver where
-  castOptionsFunctionality (StabilizedQPSolver x) = OptionsFunctionality (castForeignPtr x)
-
-instance PrintableObjectClass StabilizedQPSolver where
-  castPrintableObject (StabilizedQPSolver x) = PrintableObject (castForeignPtr x)
-
-instance SharedObjectClass StabilizedQPSolver where
-  castSharedObject (StabilizedQPSolver x) = SharedObject (castForeignPtr x)
-
-instance IOInterfaceFunctionClass StabilizedQPSolver where
-  castIOInterfaceFunction (StabilizedQPSolver x) = IOInterfaceFunction (castForeignPtr x)
-
-
--- helper instances
-instance Marshal StabilizedQPSolver (Ptr StabilizedQPSolver') where
-  marshal (StabilizedQPSolver x) = return (unsafeForeignPtrToPtr x)
-  marshalFree (StabilizedQPSolver x) _ = touchForeignPtr x
-foreign import ccall unsafe "&delete_casadi__StabilizedQPSolver" 
-  c_delete_casadi__StabilizedQPSolver :: FunPtr (Ptr StabilizedQPSolver' -> IO ())
-instance WrapReturn (Ptr StabilizedQPSolver') StabilizedQPSolver where
-  wrapReturn = (fmap StabilizedQPSolver) . (newForeignPtr c_delete_casadi__StabilizedQPSolver)
+>NlpSolver may halt iterations if the Callback is something else than 0
+>
+>In python, supply a callable, annotated with pycallback decorator
+>
+>C++ includes: functor.hpp 
+-}
+newtype Callback = Callback (ForeignPtr Callback')
+-- typeclass decl
+class CallbackClass a where
+  castCallback :: a -> Callback
+instance CallbackClass Callback where
+  castCallback = id
+
+-- baseclass instances
+instance FunctorClass Callback where
+  castFunctor (Callback x) = Functor (castForeignPtr x)
+
+instance PrintableObjectClass Callback where
+  castPrintableObject (Callback x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass Callback where
+  castSharedObject (Callback x) = SharedObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal Callback (Ptr Callback') where
+  marshal (Callback x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (Callback x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__Callback" 
+  c_delete_casadi__Callback :: FunPtr (Ptr Callback' -> IO ())
+instance WrapReturn (Ptr Callback') Callback where
+  wrapReturn = (fmap Callback) . (newForeignPtr c_delete_casadi__Callback)
+
+
+-- raw decl
+data CasadiMeta'
+-- data decl
+{-|
+>Collects global CasADi meta information.
+>
+>Joris Gillis
+>
+>C++ includes: casadi_meta.hpp 
+-}
+newtype CasadiMeta = CasadiMeta (ForeignPtr CasadiMeta')
+-- typeclass decl
+class CasadiMetaClass a where
+  castCasadiMeta :: a -> CasadiMeta
+instance CasadiMetaClass CasadiMeta where
+  castCasadiMeta = id
+
+-- baseclass instances
+
+-- helper instances
+instance Marshal CasadiMeta (Ptr CasadiMeta') where
+  marshal (CasadiMeta x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (CasadiMeta x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__CasadiMeta" 
+  c_delete_casadi__CasadiMeta :: FunPtr (Ptr CasadiMeta' -> IO ())
+instance WrapReturn (Ptr CasadiMeta') CasadiMeta where
+  wrapReturn = (fmap CasadiMeta) . (newForeignPtr c_delete_casadi__CasadiMeta)
+
+
+-- raw decl
+data CasadiOptions'
+-- data decl
+{-|
+>Collects global CasADi options.
+>
+>Note to developers: use sparingly. Global options are - in general - a
+>rather bad idea
+>
+>this class must never be instantiated. Access its static members directly
+>Joris Gillis
+>
+>C++ includes: casadi_options.hpp 
+-}
+newtype CasadiOptions = CasadiOptions (ForeignPtr CasadiOptions')
+-- typeclass decl
+class CasadiOptionsClass a where
+  castCasadiOptions :: a -> CasadiOptions
+instance CasadiOptionsClass CasadiOptions where
+  castCasadiOptions = id
+
+-- baseclass instances
+
+-- helper instances
+instance Marshal CasadiOptions (Ptr CasadiOptions') where
+  marshal (CasadiOptions x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (CasadiOptions x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__CasadiOptions" 
+  c_delete_casadi__CasadiOptions :: FunPtr (Ptr CasadiOptions' -> IO ())
+instance WrapReturn (Ptr CasadiOptions') CasadiOptions where
+  wrapReturn = (fmap CasadiOptions) . (newForeignPtr c_delete_casadi__CasadiOptions)
+
+
+-- raw decl
+data ControlSimulator'
+-- data decl
+{-|
+>Piecewise Simulation class.
+>
+>A ControlSimulator can be seen as a chain of Simulators whereby some
+>parameters change from one Simulator to the next.
+>
+>These changing parameters can typically be interpreted as "controls" in
+>the context of dynamic optimization.
+>
+>We discriminate between the following time steps: Major time-steps. These
+>are the time steps provided by the supplied grid. Controls are constant
+>inbetween major time-steps  Minor time-steps. These are time steps linearly
+>interpolated from one major time-step to the next. The option 'nf' regulates
+>how many minor time-steps are taken.  Integration time-steps. Time steps
+>that the supplied integrator might choose to integrate the continuous
+>dynamics. They are not important what ControlSimulator is concerned.  np
+>Number of parameters nu Number of controls ns The number of major grid
+>points, as supplied in the constructor nf The number of minor grid points
+>per major interval
+>
+>Joris Gillis
+>
+>>Input scheme: casadi::ControlSimulatorInput (CONTROLSIMULATOR_NUM_IN = 3) [controlsimulatorIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| CONTROLSIMULATOR_X0    | x0                     | Differential or        |
+>|                        |                        | algebraic state at t0  |
+>|                        |                        | (dimension nx-by-1) .  |
+>+------------------------+------------------------+------------------------+
+>| CONTROLSIMULATOR_P     | p                      | Parameters that are    |
+>|                        |                        | fixed over the entire  |
+>|                        |                        | horizon (dimension np- |
+>|                        |                        | by-1) .                |
+>+------------------------+------------------------+------------------------+
+>| CONTROLSIMULATOR_U     | u                      | Parameters that change |
+>|                        |                        | over the integration   |
+>|                        |                        | intervals (dimension   |
+>|                        |                        | nu-by-(ns-1)) .        |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| control_endp | OT_BOOLEAN   | false        | Include a    | casadi::Cont |
+>| oint         |              |              | control      | rolSimulator |
+>|              |              |              | value at the | Internal     |
+>|              |              |              | end of the   |              |
+>|              |              |              | simulation   |              |
+>|              |              |              | domain. Used |              |
+>|              |              |              | for interpol |              |
+>|              |              |              | ation.       |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| control_inte | OT_STRING    | "none"       | none|nearest | casadi::Cont |
+>| rpolation    |              |              | |linear      | rolSimulator |
+>|              |              |              |              | Internal     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| integrator   | OT_STRING    | GenericType( | An           | casadi::Cont |
+>|              |              | )            | integrator   | rolSimulator |
+>|              |              |              | creator      | Internal     |
+>|              |              |              | function     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| integrator_o | OT_DICTIONAR | GenericType( | Options to   | casadi::Cont |
+>| ptions       | Y            | )            | be passed to | rolSimulator |
+>|              |              |              | the          | Internal     |
+>|              |              |              | integrator   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| minor_grid   | OT_INTEGERVE | GenericType( | The local    | casadi::Cont |
+>|              | CTOR         | )            | grid used on | rolSimulator |
+>|              |              |              | each major   | Internal     |
+>|              |              |              | interval,    |              |
+>|              |              |              | with time    |              |
+>|              |              |              | normalized   |              |
+>|              |              |              | to 1. By     |              |
+>|              |              |              | default,     |              |
+>|              |              |              | option 'nf'  |              |
+>|              |              |              | is used to   |              |
+>|              |              |              | construct a  |              |
+>|              |              |              | linearly     |              |
+>|              |              |              | spaced grid. |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| nf           | OT_INTEGER   | 1            | Number of    | casadi::Cont |
+>|              |              |              | minor        | rolSimulator |
+>|              |              |              | grained      | Internal     |
+>|              |              |              | integration  |              |
+>|              |              |              | steps per    |              |
+>|              |              |              | major        |              |
+>|              |              |              | interval.    |              |
+>|              |              |              | nf>0 must    |              |
+>|              |              |              | hold. This   |              |
+>|              |              |              | option is    |              |
+>|              |              |              | not used     |              |
+>|              |              |              | when         |              |
+>|              |              |              | 'minor_grid' |              |
+>|              |              |              | is provided. |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| simulator_op | OT_DICTIONAR | GenericType( | Options to   | casadi::Cont |
+>| tions        | Y            | )            | be passed to | rolSimulator |
+>|              |              |              | the          | Internal     |
+>|              |              |              | simulator    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>Diagrams
+>
+>C++ includes: control_simulator.hpp 
+-}
+newtype ControlSimulator = ControlSimulator (ForeignPtr ControlSimulator')
+-- typeclass decl
+class ControlSimulatorClass a where
+  castControlSimulator :: a -> ControlSimulator
+instance ControlSimulatorClass ControlSimulator where
+  castControlSimulator = id
+
+-- baseclass instances
+instance FunctionClass ControlSimulator where
+  castFunction (ControlSimulator x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass ControlSimulator where
+  castOptionsFunctionality (ControlSimulator x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass ControlSimulator where
+  castPrintableObject (ControlSimulator x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass ControlSimulator where
+  castSharedObject (ControlSimulator x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass ControlSimulator where
+  castIOInterfaceFunction (ControlSimulator x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal ControlSimulator (Ptr ControlSimulator') where
+  marshal (ControlSimulator x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (ControlSimulator x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__ControlSimulator" 
+  c_delete_casadi__ControlSimulator :: FunPtr (Ptr ControlSimulator' -> IO ())
+instance WrapReturn (Ptr ControlSimulator') ControlSimulator where
+  wrapReturn = (fmap ControlSimulator) . (newForeignPtr c_delete_casadi__ControlSimulator)
+
+
+-- raw decl
+data CustomEvaluate'
+-- data decl
+{-|
+>CustomEvaluate.
+>
+>In C++, supply a CustomEvaluateCPtr function pointer
+>
+>In python, supply a callable, annotated with pyevaluate decorator
+>
+>C++ includes: functor.hpp 
+-}
+newtype CustomEvaluate = CustomEvaluate (ForeignPtr CustomEvaluate')
+-- typeclass decl
+class CustomEvaluateClass a where
+  castCustomEvaluate :: a -> CustomEvaluate
+instance CustomEvaluateClass CustomEvaluate where
+  castCustomEvaluate = id
+
+-- baseclass instances
+instance FunctorClass CustomEvaluate where
+  castFunctor (CustomEvaluate x) = Functor (castForeignPtr x)
+
+instance PrintableObjectClass CustomEvaluate where
+  castPrintableObject (CustomEvaluate x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass CustomEvaluate where
+  castSharedObject (CustomEvaluate x) = SharedObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal CustomEvaluate (Ptr CustomEvaluate') where
+  marshal (CustomEvaluate x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (CustomEvaluate x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__CustomEvaluate" 
+  c_delete_casadi__CustomEvaluate :: FunPtr (Ptr CustomEvaluate' -> IO ())
+instance WrapReturn (Ptr CustomEvaluate') CustomEvaluate where
+  wrapReturn = (fmap CustomEvaluate) . (newForeignPtr c_delete_casadi__CustomEvaluate)
+
+
+-- raw decl
+data CustomFunction'
+-- data decl
+{-|
+>Interface to a custom function.
+>
+>Joel Andersson
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>Diagrams
+>
+>C++ includes: custom_function.hpp 
+-}
+newtype CustomFunction = CustomFunction (ForeignPtr CustomFunction')
+-- typeclass decl
+class CustomFunctionClass a where
+  castCustomFunction :: a -> CustomFunction
+instance CustomFunctionClass CustomFunction where
+  castCustomFunction = id
+
+-- baseclass instances
+instance FunctionClass CustomFunction where
+  castFunction (CustomFunction x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass CustomFunction where
+  castOptionsFunctionality (CustomFunction x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass CustomFunction where
+  castPrintableObject (CustomFunction x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass CustomFunction where
+  castSharedObject (CustomFunction x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass CustomFunction where
+  castIOInterfaceFunction (CustomFunction x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal CustomFunction (Ptr CustomFunction') where
+  marshal (CustomFunction x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (CustomFunction x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__CustomFunction" 
+  c_delete_casadi__CustomFunction :: FunPtr (Ptr CustomFunction' -> IO ())
+instance WrapReturn (Ptr CustomFunction') CustomFunction where
+  wrapReturn = (fmap CustomFunction) . (newForeignPtr c_delete_casadi__CustomFunction)
+
+
+-- raw decl
+data DMatrix'
+-- data decl
+{-|
+-}
+newtype DMatrix = DMatrix (ForeignPtr DMatrix')
+-- typeclass decl
+class DMatrixClass a where
+  castDMatrix :: a -> DMatrix
+instance DMatrixClass DMatrix where
+  castDMatrix = id
+
+-- baseclass instances
+instance PrintableObjectClass DMatrix where
+  castPrintableObject (DMatrix x) = PrintableObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal DMatrix (Ptr DMatrix') where
+  marshal (DMatrix x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (DMatrix x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__DMatrix" 
+  c_delete_casadi__DMatrix :: FunPtr (Ptr DMatrix' -> IO ())
+instance WrapReturn (Ptr DMatrix') DMatrix where
+  wrapReturn = (fmap DMatrix) . (newForeignPtr c_delete_casadi__DMatrix)
+
+
+-- raw decl
+data DerivativeGenerator'
+-- data decl
+{-|
+>Derivative Generator Functor.
+>
+>In C++, supply a DerivativeGeneratorCPtr function pointer
+>
+>In python, supply a callable, annotated with derivativegenerator decorator
+>
+>C++ includes: functor.hpp 
+-}
+newtype DerivativeGenerator = DerivativeGenerator (ForeignPtr DerivativeGenerator')
+-- typeclass decl
+class DerivativeGeneratorClass a where
+  castDerivativeGenerator :: a -> DerivativeGenerator
+instance DerivativeGeneratorClass DerivativeGenerator where
+  castDerivativeGenerator = id
+
+-- baseclass instances
+instance FunctorClass DerivativeGenerator where
+  castFunctor (DerivativeGenerator x) = Functor (castForeignPtr x)
+
+instance PrintableObjectClass DerivativeGenerator where
+  castPrintableObject (DerivativeGenerator x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass DerivativeGenerator where
+  castSharedObject (DerivativeGenerator x) = SharedObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal DerivativeGenerator (Ptr DerivativeGenerator') where
+  marshal (DerivativeGenerator x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (DerivativeGenerator x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__DerivativeGenerator" 
+  c_delete_casadi__DerivativeGenerator :: FunPtr (Ptr DerivativeGenerator' -> IO ())
+instance WrapReturn (Ptr DerivativeGenerator') DerivativeGenerator where
+  wrapReturn = (fmap DerivativeGenerator) . (newForeignPtr c_delete_casadi__DerivativeGenerator)
+
+
+-- raw decl
+data ExternalFunction'
+-- data decl
+{-|
+>Interface for a function that is not implemented by CasADi symbolics.
+>
+>Joel Andersson
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>Diagrams
+>
+>C++ includes: external_function.hpp 
+-}
+newtype ExternalFunction = ExternalFunction (ForeignPtr ExternalFunction')
+-- typeclass decl
+class ExternalFunctionClass a where
+  castExternalFunction :: a -> ExternalFunction
+instance ExternalFunctionClass ExternalFunction where
+  castExternalFunction = id
+
+-- baseclass instances
+instance FunctionClass ExternalFunction where
+  castFunction (ExternalFunction x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass ExternalFunction where
+  castOptionsFunctionality (ExternalFunction x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass ExternalFunction where
+  castPrintableObject (ExternalFunction x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass ExternalFunction where
+  castSharedObject (ExternalFunction x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass ExternalFunction where
+  castIOInterfaceFunction (ExternalFunction x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal ExternalFunction (Ptr ExternalFunction') where
+  marshal (ExternalFunction x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (ExternalFunction x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__ExternalFunction" 
+  c_delete_casadi__ExternalFunction :: FunPtr (Ptr ExternalFunction' -> IO ())
+instance WrapReturn (Ptr ExternalFunction') ExternalFunction where
+  wrapReturn = (fmap ExternalFunction) . (newForeignPtr c_delete_casadi__ExternalFunction)
+
+
+-- raw decl
+data Function'
+-- data decl
+{-|
+>General function.
+>
+>A general function $f$ in casadi can be multi-input, multi-output. Number of
+>inputs: nin getNumInputs() Number of outputs: nout getNumOutputs()  We can
+>view this function as a being composed of a ( nin, nout) grid of single-
+>input, single-output primitive functions. Each such primitive function $f_
+>{i, j} \\\\forall i \\\\in [0, nin-1], j \\\\in [0, nout-1]$ can map as
+>$\\\\mathbf {R}^{n, m}\\\\to\\\\mathbf{R}^{p, q}$, in which n, m, p, q can
+>take different values for every (i, j) pair.  When passing input, you
+>specify which partition $i$ is active. You pass the numbers vectorized, as a
+>vector of size $(n*m)$. When requesting output, you specify which partition
+>$j$ is active. You get the numbers vectorized, as a vector of size $(p*q)$.
+>To calculate Jacobians, you need to have $(m=1, q=1)$.
+>
+>Write the Jacobian as $J_ {i, j} = \\\\nabla f_{i, j} = \\\\frac
+>{\\\\partial f_{i, j}(\\\\vec{x})}{\\\\partial \\\\vec{x}}$.
+>
+>Using $\\\\vec {v} \\\\in \\\\mathbf{R}^n$ as a forward seed: setFwdSeed(v,
+>i) Retrieving $\\\\vec {s}_f \\\\in \\\\mathbf{R}^p$ from: getFwdSens(sf, j)
+>Using $\\\\vec {w} \\\\in \\\\mathbf{R}^p$ as a forward seed: setAdjSeed(w,
+>j) Retrieving $\\\\vec {s}_a \\\\in \\\\mathbf{R}^n $ from: getAdjSens(sa,
+>i)  We have the following relationships for function mapping from a row
+>vector to a row vector:
+>
+>$ \\\\vec {s}_f = \\\\nabla f_{i, j} . \\\\vec{v}$ $ \\\\vec {s}_a =
+>(\\\\nabla f_{i, j})^T . \\\\vec{w}$
+>
+>Some quantities in these formulas must be transposed: input col: transpose $
+>\\\\vec {v} $ and $\\\\vec{s}_a$ output col: transpose $ \\\\vec {w} $ and
+>$\\\\vec{s}_f$  NOTE: Functions are allowed to modify their input arguments
+>when evaluating: implicitFunction, IDAS solver Further releases may disallow
+>this.
+>
+>Joel Andersson
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>>List of available monitors
+>+---------+--------------------------+
+>|   Id    |         Used in          |
+>+=========+==========================+
+>| inputs  | casadi::FunctionInternal |
+>+---------+--------------------------+
+>| outputs | casadi::FunctionInternal |
+>+---------+--------------------------+
+>
+>Diagrams
+>
+>C++ includes: function.hpp 
+-}
+newtype Function = Function (ForeignPtr Function')
+-- typeclass decl
+class FunctionClass a where
+  castFunction :: a -> Function
+instance FunctionClass Function where
+  castFunction = id
+
+-- baseclass instances
+instance OptionsFunctionalityClass Function where
+  castOptionsFunctionality (Function x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass Function where
+  castPrintableObject (Function x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass Function where
+  castSharedObject (Function x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass Function where
+  castIOInterfaceFunction (Function x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal Function (Ptr Function') where
+  marshal (Function x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (Function x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__Function" 
+  c_delete_casadi__Function :: FunPtr (Ptr Function' -> IO ())
+instance WrapReturn (Ptr Function') Function where
+  wrapReturn = (fmap Function) . (newForeignPtr c_delete_casadi__Function)
+
+
+-- raw decl
+data Functor'
+-- data decl
+{-|
+>Functor.
+>
+>Joris Gillis
+>
+>C++ includes: functor.hpp 
+-}
+newtype Functor = Functor (ForeignPtr Functor')
+-- typeclass decl
+class FunctorClass a where
+  castFunctor :: a -> Functor
+instance FunctorClass Functor where
+  castFunctor = id
+
+-- baseclass instances
+instance PrintableObjectClass Functor where
+  castPrintableObject (Functor x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass Functor where
+  castSharedObject (Functor x) = SharedObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal Functor (Ptr Functor') where
+  marshal (Functor x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (Functor x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__Functor" 
+  c_delete_casadi__Functor :: FunPtr (Ptr Functor' -> IO ())
+instance WrapReturn (Ptr Functor') Functor where
+  wrapReturn = (fmap Functor) . (newForeignPtr c_delete_casadi__Functor)
+
+
+-- raw decl
+data GenericType'
+-- data decl
+{-|
+>Generic data type.
+>
+>Joel Andersson
+>
+>C++ includes: generic_type.hpp 
+-}
+newtype GenericType = GenericType (ForeignPtr GenericType')
+-- typeclass decl
+class GenericTypeClass a where
+  castGenericType :: a -> GenericType
+instance GenericTypeClass GenericType where
+  castGenericType = id
+
+-- baseclass instances
+instance PrintableObjectClass GenericType where
+  castPrintableObject (GenericType x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass GenericType where
+  castSharedObject (GenericType x) = SharedObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal GenericType (Ptr GenericType') where
+  marshal (GenericType x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (GenericType x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__GenericType" 
+  c_delete_casadi__GenericType :: FunPtr (Ptr GenericType' -> IO ())
+instance WrapReturn (Ptr GenericType') GenericType where
+  wrapReturn = (fmap GenericType) . (newForeignPtr c_delete_casadi__GenericType)
+
+
+-- raw decl
+data HomotopyNlpSolver'
+-- data decl
+{-|
+>Base class for Homotopy NLP Solvers.
+>
+>Solves the following parametric nonlinear program (NLP):min          F(x, p,
+>tau)  x  subject to             LBX <=   x    <= UBX             LBG <= G(x,
+>p) <= UBG                        p  == P nx: number of decision variables
+>ng: number of constraints     np: number of parameters
+>
+>In a homotopy from tau = 0 to tau = 1.
+>
+>General information
+>
+>>Input scheme: casadi::NlpSolverInput (NLP_SOLVER_NUM_IN = 8) [nlpSolverIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| NLP_SOLVER_X0          | x0                     | Decision variables,    |
+>|                        |                        | initial guess (nx x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_P           | p                      | Value of fixed         |
+>|                        |                        | parameters (np x 1) .  |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LBX         | lbx                    | Decision variables     |
+>|                        |                        | lower bound (nx x 1),  |
+>|                        |                        | default -inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_UBX         | ubx                    | Decision variables     |
+>|                        |                        | upper bound (nx x 1),  |
+>|                        |                        | default +inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LBG         | lbg                    | Constraints lower      |
+>|                        |                        | bound (ng x 1),        |
+>|                        |                        | default -inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_UBG         | ubg                    | Constraints upper      |
+>|                        |                        | bound (ng x 1),        |
+>|                        |                        | default +inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_X0      | lam_x0                 | Lagrange multipliers   |
+>|                        |                        | for bounds on X,       |
+>|                        |                        | initial guess (nx x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_G0      | lam_g0                 | Lagrange multipliers   |
+>|                        |                        | for bounds on G,       |
+>|                        |                        | initial guess (ng x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>
+>>Output scheme: casadi::NlpSolverOutput (NLP_SOLVER_NUM_OUT = 6) [nlpSolverOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| NLP_SOLVER_X           | x                      | Decision variables at  |
+>|                        |                        | the optimal solution   |
+>|                        |                        | (nx x 1) .             |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_F           | f                      | Cost function value at |
+>|                        |                        | the optimal solution   |
+>|                        |                        | (1 x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_G           | g                      | Constraints function   |
+>|                        |                        | at the optimal         |
+>|                        |                        | solution (ng x 1) .    |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_X       | lam_x                  | Lagrange multipliers   |
+>|                        |                        | for bounds on X at the |
+>|                        |                        | solution (nx x 1) .    |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_G       | lam_g                  | Lagrange multipliers   |
+>|                        |                        | for bounds on G at the |
+>|                        |                        | solution (ng x 1) .    |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_P       | lam_p                  | Lagrange multipliers   |
+>|                        |                        | for bounds on P at the |
+>|                        |                        | solution (np x 1) .    |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| expand       | OT_BOOLEAN   | false        | Expand the   | casadi::Homo |
+>|              |              |              | NLP function | topyNLPInter |
+>|              |              |              | in terms of  | nal          |
+>|              |              |              | scalar       |              |
+>|              |              |              | operations,  |              |
+>|              |              |              | i.e. MX->SX  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_HomotopyNlpSolver_simple'>simple</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>HomotopyNlpSolver.doc("myextraplugin")
+>
+>simple
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| nlp_solver      | OT_STRING       | GenericType()   | The NLP solver  |
+>|                 |                 |                 | to be used by   |
+>|                 |                 |                 | the Homotopy    |
+>|                 |                 |                 | solver          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nlp_solver_opti | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ons             |                 |                 | passed to the   |
+>|                 |                 |                 | Homotopy solver |
+>+-----------------+-----------------+-----------------+-----------------+
+>| num_steps       | OT_INTEGER      | 10              | Take this many  |
+>|                 |                 |                 | steps to go     |
+>|                 |                 |                 | from tau=0 to   |
+>|                 |                 |                 | tau=1.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>Joris Gillis Diagrams
+>
+>C++ includes: homotopy_nlp_solver.hpp 
+-}
+newtype HomotopyNlpSolver = HomotopyNlpSolver (ForeignPtr HomotopyNlpSolver')
+-- typeclass decl
+class HomotopyNlpSolverClass a where
+  castHomotopyNlpSolver :: a -> HomotopyNlpSolver
+instance HomotopyNlpSolverClass HomotopyNlpSolver where
+  castHomotopyNlpSolver = id
+
+-- baseclass instances
+instance FunctionClass HomotopyNlpSolver where
+  castFunction (HomotopyNlpSolver x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass HomotopyNlpSolver where
+  castOptionsFunctionality (HomotopyNlpSolver x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass HomotopyNlpSolver where
+  castPrintableObject (HomotopyNlpSolver x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass HomotopyNlpSolver where
+  castSharedObject (HomotopyNlpSolver x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass HomotopyNlpSolver where
+  castIOInterfaceFunction (HomotopyNlpSolver x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal HomotopyNlpSolver (Ptr HomotopyNlpSolver') where
+  marshal (HomotopyNlpSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (HomotopyNlpSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__HomotopyNlpSolver" 
+  c_delete_casadi__HomotopyNlpSolver :: FunPtr (Ptr HomotopyNlpSolver' -> IO ())
+instance WrapReturn (Ptr HomotopyNlpSolver') HomotopyNlpSolver where
+  wrapReturn = (fmap HomotopyNlpSolver) . (newForeignPtr c_delete_casadi__HomotopyNlpSolver)
+
+
+-- raw decl
+data IMatrix'
+-- data decl
+{-|
+-}
+newtype IMatrix = IMatrix (ForeignPtr IMatrix')
+-- typeclass decl
+class IMatrixClass a where
+  castIMatrix :: a -> IMatrix
+instance IMatrixClass IMatrix where
+  castIMatrix = id
+
+-- baseclass instances
+instance PrintableObjectClass IMatrix where
+  castPrintableObject (IMatrix x) = PrintableObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal IMatrix (Ptr IMatrix') where
+  marshal (IMatrix x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (IMatrix x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__IMatrix" 
+  c_delete_casadi__IMatrix :: FunPtr (Ptr IMatrix' -> IO ())
+instance WrapReturn (Ptr IMatrix') IMatrix where
+  wrapReturn = (fmap IMatrix) . (newForeignPtr c_delete_casadi__IMatrix)
+
+
+-- raw decl
+data IOScheme'
+-- data decl
+{-|
+>Class with mapping between names and indices.
+>
+>Joris Gillis
+>
+>C++ includes: io_scheme.hpp 
+-}
+newtype IOScheme = IOScheme (ForeignPtr IOScheme')
+-- typeclass decl
+class IOSchemeClass a where
+  castIOScheme :: a -> IOScheme
+instance IOSchemeClass IOScheme where
+  castIOScheme = id
+
+-- baseclass instances
+instance PrintableObjectClass IOScheme where
+  castPrintableObject (IOScheme x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass IOScheme where
+  castSharedObject (IOScheme x) = SharedObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal IOScheme (Ptr IOScheme') where
+  marshal (IOScheme x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (IOScheme x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__IOScheme" 
+  c_delete_casadi__IOScheme :: FunPtr (Ptr IOScheme' -> IO ())
+instance WrapReturn (Ptr IOScheme') IOScheme where
+  wrapReturn = (fmap IOScheme) . (newForeignPtr c_delete_casadi__IOScheme)
+
+
+-- raw decl
+data ImplicitFunction'
+-- data decl
+{-|
+>Abstract base class for the implicit function classes.
+>
+>The equation:
+>
+>F(z, x1, x2, ..., xn) == 0
+>
+>where d_F/dz is invertible, implicitly defines the equation:
+>
+>z := G(x1, x2, ..., xn)
+>
+>F should be an Function mapping from (n+1) inputs to m outputs. The first
+>output is the residual that should be zero.
+>
+>ImplicitFunction (G) is an Function mapping from n inputs to m outputs. n
+>may be zero. The first output is the solved for z.
+>
+>You can provide an initial guess for z by setting output(0) of
+>ImplicitFunction.
+>
+>General information
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| constraints  | OT_INTEGERVE | GenericType( | Constrain    | casadi::Impl |
+>|              | CTOR         | )            | the          | icitFunction |
+>|              |              |              | unknowns. 0  | Internal     |
+>|              |              |              | (default):   |              |
+>|              |              |              | no           |              |
+>|              |              |              | constraint   |              |
+>|              |              |              | on ui, 1: ui |              |
+>|              |              |              | >= 0.0, -1:  |              |
+>|              |              |              | ui <= 0.0,   |              |
+>|              |              |              | 2: ui > 0.0, |              |
+>|              |              |              | -2: ui <     |              |
+>|              |              |              | 0.0.         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| implicit_inp | OT_INTEGER   | 0            | Index of the | casadi::Impl |
+>| ut           |              |              | input that   | icitFunction |
+>|              |              |              | corresponds  | Internal     |
+>|              |              |              | to the       |              |
+>|              |              |              | actual root- |              |
+>|              |              |              | finding      |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| implicit_out | OT_INTEGER   | 0            | Index of the | casadi::Impl |
+>| put          |              |              | output that  | icitFunction |
+>|              |              |              | corresponds  | Internal     |
+>|              |              |              | to the       |              |
+>|              |              |              | actual root- |              |
+>|              |              |              | finding      |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| linear_solve | OT_STRING    | GenericType( | User-defined | casadi::Impl |
+>| r            |              | )            | linear       | icitFunction |
+>|              |              |              | solver       | Internal     |
+>|              |              |              | class.       |              |
+>|              |              |              | Needed for s |              |
+>|              |              |              | ensitivities |              |
+>|              |              |              | .            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| linear_solve | OT_DICTIONAR | GenericType( | Options to   | casadi::Impl |
+>| r_options    | Y            | )            | be passed to | icitFunction |
+>|              |              |              | the linear   | Internal     |
+>|              |              |              | solver.      |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_ImplicitFunction_kinsol'>kinsol</a>
+>
+>- <a href='#plugin_ImplicitFunction_newton'>newton</a>
+>
+>- <a href='#plugin_ImplicitFunction_nlp'>nlp</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>ImplicitFunction.doc("myextraplugin")
+>
+>kinsol
+>
+>KINSOL interface from the Sundials suite
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| abstol          | OT_REAL         | 0.000           | Stopping        |
+>|                 |                 |                 | criterion       |
+>|                 |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| disable_interna | OT_BOOLEAN      | false           | Disable KINSOL  |
+>| l_warnings      |                 |                 | internal        |
+>|                 |                 |                 | warning         |
+>|                 |                 |                 | messages        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| exact_jacobian  | OT_BOOLEAN      | true            |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| f_scale         | OT_REALVECTOR   |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| iterative_solve | OT_STRING       | "gmres"         | gmres|bcgstab|t |
+>| r               |                 |                 | fqmr            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver_t | OT_STRING       | "dense"         | dense|banded|it |
+>| ype             |                 |                 | erative|user_de |
+>|                 |                 |                 | fined           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| lower_bandwidth | OT_INTEGER      |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_iter        | OT_INTEGER      | 0               | Maximum number  |
+>|                 |                 |                 | of Newton       |
+>|                 |                 |                 | iterations.     |
+>|                 |                 |                 | Putting 0 sets  |
+>|                 |                 |                 | the default     |
+>|                 |                 |                 | value of        |
+>|                 |                 |                 | KinSol.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_krylov      | OT_INTEGER      | 0               |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pretype         | OT_STRING       | "none"          | (none|left|righ |
+>|                 |                 |                 | t|both)         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| strategy        | OT_STRING       | "none"          | Globalization   |
+>|                 |                 |                 | strategy (none| |
+>|                 |                 |                 | linesearch)     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| u_scale         | OT_REALVECTOR   |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| upper_bandwidth | OT_INTEGER      |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| use_preconditio | OT_BOOLEAN      | false           | precondition an |
+>| ner             |                 |                 | iterative       |
+>|                 |                 |                 | solver          |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available monitors
+>+-----------+
+>|    Id     |
+>+===========+
+>| eval_djac |
+>+-----------+
+>| eval_f    |
+>+-----------+
+>
+>newton
+>
+>Implements simple newton iterations to solve an implicit function.
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| abstol          | OT_REAL         | 0.000           | Stopping        |
+>|                 |                 |                 | criterion       |
+>|                 |                 |                 | tolerance on    |
+>|                 |                 |                 | max(|F|)        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| abstolStep      | OT_REAL         | 0.000           | Stopping        |
+>|                 |                 |                 | criterion       |
+>|                 |                 |                 | tolerance on    |
+>|                 |                 |                 | step size       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_iter        | OT_INTEGER      | 1000            | Maximum number  |
+>|                 |                 |                 | of Newton       |
+>|                 |                 |                 | iterations to   |
+>|                 |                 |                 | perform before  |
+>|                 |                 |                 | returning.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available monitors
+>+----------+
+>|    Id    |
+>+==========+
+>| F        |
+>+----------+
+>| J        |
+>+----------+
+>| normF    |
+>+----------+
+>| step     |
+>+----------+
+>| stepsize |
+>+----------+
+>
+>>List of available stats
+>+---------------+
+>|      Id       |
+>+===============+
+>| iter          |
+>+---------------+
+>| return_status |
+>+---------------+
+>
+>nlp
+>
+>Use an NlpSolver as ImplicitFunction solver
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| nlp_solver      | OT_STRING       | GenericType()   | The NlpSolver   |
+>|                 |                 |                 | used to solve   |
+>|                 |                 |                 | the implicit    |
+>|                 |                 |                 | system.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nlp_solver_opti | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ons             |                 |                 | passed to the   |
+>|                 |                 |                 | NlpSolver       |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available stats
+>+------------------+
+>|        Id        |
+>+==================+
+>| nlp_solver_stats |
+>+------------------+
+>
+>Joel Andersson Diagrams
+>
+>C++ includes: implicit_function.hpp 
+-}
+newtype ImplicitFunction = ImplicitFunction (ForeignPtr ImplicitFunction')
+-- typeclass decl
+class ImplicitFunctionClass a where
+  castImplicitFunction :: a -> ImplicitFunction
+instance ImplicitFunctionClass ImplicitFunction where
+  castImplicitFunction = id
+
+-- baseclass instances
+instance FunctionClass ImplicitFunction where
+  castFunction (ImplicitFunction x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass ImplicitFunction where
+  castOptionsFunctionality (ImplicitFunction x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass ImplicitFunction where
+  castPrintableObject (ImplicitFunction x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass ImplicitFunction where
+  castSharedObject (ImplicitFunction x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass ImplicitFunction where
+  castIOInterfaceFunction (ImplicitFunction x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal ImplicitFunction (Ptr ImplicitFunction') where
+  marshal (ImplicitFunction x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (ImplicitFunction x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__ImplicitFunction" 
+  c_delete_casadi__ImplicitFunction :: FunPtr (Ptr ImplicitFunction' -> IO ())
+instance WrapReturn (Ptr ImplicitFunction') ImplicitFunction where
+  wrapReturn = (fmap ImplicitFunction) . (newForeignPtr c_delete_casadi__ImplicitFunction)
+
+
+-- raw decl
+data Integrator'
+-- data decl
+{-|
+>Base class for integrators.
+>
+>Integrator abstract base class
+>
+>Solves an initial value problem (IVP) coupled to a terminal value problem
+>with differential equation given as an implicit ODE coupled to an algebraic
+>equation and a set of quadratures: Initial conditions at t=t0  x(t0)  = x0
+>q(t0)  = 0   Forward integration from t=t0 to t=tf  der(x) = function(x, z,
+>p, t) Forward ODE  0 = fz(x, z, p, t)                  Forward algebraic
+>equations  der(q) = fq(x, z, p, t)                  Forward quadratures
+>Terminal conditions at t=tf  rx(tf)  = rx0  rq(tf)  = 0 Backward integration
+>from t=tf to t=t0  der(rx) = gx(rx, rz, rp, x, z, p, t)        Backward ODE
+>0 = gz(rx, rz, rp, x, z, p, t) Backward algebraic equations  der(rq) =
+>gq(rx, rz, rp, x, z, p, t) Backward quadratures   where we assume that both
+>the forward and backwards integrations are index-1  (i.e. dfz/dz, dgz/drz
+>are invertible) and furthermore that  gx, gz and gq have a linear dependency
+>on rx, rz and rp.
+>
+>The Integrator class provides some additional functionality, such as getting
+>the value of the state and/or sensitivities at certain time points.
+>
+>General information
+>
+>>Input scheme: casadi::IntegratorInput (INTEGRATOR_NUM_IN = 6) [integratorIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| INTEGRATOR_X0          | x0                     | Differential state at  |
+>|                        |                        | the initial time .     |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_P           | p                      | Parameters .           |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_Z0          | z0                     | Initial guess for the  |
+>|                        |                        | algebraic variable .   |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_RX0         | rx0                    | Backward differential  |
+>|                        |                        | state at the final     |
+>|                        |                        | time .                 |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_RP          | rp                     | Backward parameter     |
+>|                        |                        | vector .               |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_RZ0         | rz0                    | Initial guess for the  |
+>|                        |                        | backwards algebraic    |
+>|                        |                        | variable .             |
+>+------------------------+------------------------+------------------------+
+>
+>>Output scheme: casadi::IntegratorOutput (INTEGRATOR_NUM_OUT = 6) [integratorOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| INTEGRATOR_XF          | xf                     | Differential state at  |
+>|                        |                        | the final time .       |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_QF          | qf                     | Quadrature state at    |
+>|                        |                        | the final time .       |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_ZF          | zf                     | Algebraic variable at  |
+>|                        |                        | the final time .       |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_RXF         | rxf                    | Backward differential  |
+>|                        |                        | state at the initial   |
+>|                        |                        | time .                 |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_RQF         | rqf                    | Backward quadrature    |
+>|                        |                        | state at the initial   |
+>|                        |                        | time .                 |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_RZF         | rzf                    | Backward algebraic     |
+>|                        |                        | variable at the        |
+>|                        |                        | initial time .         |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| augmented_op | OT_DICTIONAR | GenericType( | Options to   | casadi::Inte |
+>| tions        | Y            | )            | be passed    | gratorIntern |
+>|              |              |              | down to the  | al           |
+>|              |              |              | augmented    |              |
+>|              |              |              | integrator,  |              |
+>|              |              |              | if one is    |              |
+>|              |              |              | constructed. |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| expand_augme | OT_BOOLEAN   | true         | If DAE       | casadi::Inte |
+>| nted         |              |              | callback     | gratorIntern |
+>|              |              |              | functions    | al           |
+>|              |              |              | are          |              |
+>|              |              |              | SXFunction , |              |
+>|              |              |              | have         |              |
+>|              |              |              | augmented    |              |
+>|              |              |              | DAE callback |              |
+>|              |              |              | function     |              |
+>|              |              |              | also be      |              |
+>|              |              |              | SXFunction . |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_stats  | OT_BOOLEAN   | false        | Print out    | casadi::Inte |
+>|              |              |              | statistics   | gratorIntern |
+>|              |              |              | after        | al           |
+>|              |              |              | integration  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| t0           | OT_REAL      | 0            | Beginning of | casadi::Inte |
+>|              |              |              | the time     | gratorIntern |
+>|              |              |              | horizon      | al           |
+>+--------------+--------------+--------------+--------------+--------------+
+>| tf           | OT_REAL      | 1            | End of the   | casadi::Inte |
+>|              |              |              | time horizon | gratorIntern |
+>|              |              |              |              | al           |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_Integrator_cvodes'>cvodes</a>
+>
+>- <a href='#plugin_Integrator_idas'>idas</a>
+>
+>- <a href='#plugin_Integrator_collocation'>collocation</a>
+>
+>- <a href='#plugin_Integrator_oldcollocation'>oldcollocation</a>
+>
+>- <a href='#plugin_Integrator_rk'>rk</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>Integrator.doc("myextraplugin")
+>
+>cvodes
+>
+>Interface to CVodes from the Sundials suite.
+>
+>A call to evaluate will integrate to the end.
+>
+>You can retrieve the entire state trajectory as follows, after the evaluate
+>call: Call reset. Then call integrate(t_i) and getOuput for a series of
+>times t_i.
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| abstol          | OT_REAL         | 0.000           | Absolute        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the IVP         |
+>|                 |                 |                 | solution        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| abstolB         | OT_REAL         | GenericType()   | Absolute        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the adjoint     |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | solution        |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to abstol]      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| disable_interna | OT_BOOLEAN      | false           | Disable CVodes  |
+>| l_warnings      |                 |                 | internal        |
+>|                 |                 |                 | warning         |
+>|                 |                 |                 | messages        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| exact_jacobian  | OT_BOOLEAN      | true            | Use exact       |
+>|                 |                 |                 | Jacobian        |
+>|                 |                 |                 | information for |
+>|                 |                 |                 | the forward     |
+>|                 |                 |                 | integration     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| exact_jacobianB | OT_BOOLEAN      | GenericType()   | Use exact       |
+>|                 |                 |                 | Jacobian        |
+>|                 |                 |                 | information for |
+>|                 |                 |                 | the backward    |
+>|                 |                 |                 | integration     |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to              |
+>|                 |                 |                 | exact_jacobian] |
+>+-----------------+-----------------+-----------------+-----------------+
+>| finite_differen | OT_BOOLEAN      | false           | Use finite      |
+>| ce_fsens        |                 |                 | differences to  |
+>|                 |                 |                 | approximate the |
+>|                 |                 |                 | forward         |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | equations (if   |
+>|                 |                 |                 | AD is not       |
+>|                 |                 |                 | available)      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_abstol    | OT_REAL         | GenericType()   | Absolute        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the forward     |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | solution        |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to abstol]      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_all_at_on | OT_BOOLEAN      | true            | Calculate all   |
+>| ce              |                 |                 | right hand      |
+>|                 |                 |                 | sides of the    |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | equations at    |
+>|                 |                 |                 | once            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_err_con   | OT_BOOLEAN      | true            | include the     |
+>|                 |                 |                 | forward         |
+>|                 |                 |                 | sensitivities   |
+>|                 |                 |                 | in all error    |
+>|                 |                 |                 | controls        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_reltol    | OT_REAL         | GenericType()   | Relative        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the forward     |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | solution        |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to reltol]      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_scaling_f | OT_REALVECTOR   | GenericType()   | Scaling factor  |
+>| actors          |                 |                 | for the         |
+>|                 |                 |                 | components if   |
+>|                 |                 |                 | finite          |
+>|                 |                 |                 | differences is  |
+>|                 |                 |                 | used            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_sensitivi | OT_INTEGERVECTO | GenericType()   | Specifies which |
+>| y_parameters    | R               |                 | components will |
+>|                 |                 |                 | be used when    |
+>|                 |                 |                 | estimating the  |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | equations       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| interpolation_t | OT_STRING       | "hermite"       | Type of         |
+>| ype             |                 |                 | interpolation   |
+>|                 |                 |                 | for the adjoint |
+>|                 |                 |                 | sensitivities ( |
+>|                 |                 |                 | hermite|polynom |
+>|                 |                 |                 | ial)            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| iterative_solve | OT_STRING       | "gmres"         | (gmres|bcgstab| |
+>| r               |                 |                 | tfqmr)          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| iterative_solve | OT_STRING       | GenericType()   | (gmres|bcgstab| |
+>| rB              |                 |                 | tfqmr)          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_multiste | OT_STRING       | "bdf"           | Integrator      |
+>| p_method        |                 |                 | scheme          |
+>|                 |                 |                 | (bdf|adams)     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver   | OT_STRING       | GenericType()   | A custom linear |
+>|                 |                 |                 | solver creator  |
+>|                 |                 |                 | function        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solverB  | OT_STRING       | GenericType()   | A custom linear |
+>|                 |                 |                 | solver creator  |
+>|                 |                 |                 | function for    |
+>|                 |                 |                 | backwards       |
+>|                 |                 |                 | integration     |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to              |
+>|                 |                 |                 | linear_solver]  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver_o | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ptions          |                 |                 | passed to the   |
+>|                 |                 |                 | linear solver   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver_o | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ptionsB         |                 |                 | passed to the   |
+>|                 |                 |                 | linear solver   |
+>|                 |                 |                 | for backwards   |
+>|                 |                 |                 | integration     |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to linear_solve |
+>|                 |                 |                 | r_options]      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver_t | OT_STRING       | "dense"         | (user_defined|d |
+>| ype             |                 |                 | ense|banded|ite |
+>|                 |                 |                 | rative)         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver_t | OT_STRING       | GenericType()   | (user_defined|d |
+>| ypeB            |                 |                 | ense|banded|ite |
+>|                 |                 |                 | rative)         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| lower_bandwidth | OT_INTEGER      | GenericType()   | Lower band-     |
+>|                 |                 |                 | width of banded |
+>|                 |                 |                 | Jacobian        |
+>|                 |                 |                 | (estimations)   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| lower_bandwidth | OT_INTEGER      | GenericType()   | lower band-     |
+>| B               |                 |                 | width of banded |
+>|                 |                 |                 | jacobians for   |
+>|                 |                 |                 | backward        |
+>|                 |                 |                 | integration     |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to lower_bandwi |
+>|                 |                 |                 | dth]            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_krylov      | OT_INTEGER      | 10              | Maximum Krylov  |
+>|                 |                 |                 | subspace size   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_krylovB     | OT_INTEGER      | GenericType()   | Maximum krylov  |
+>|                 |                 |                 | subspace size   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_multistep_o | OT_INTEGER      | 5               |                 |
+>| rder            |                 |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_num_steps   | OT_INTEGER      | 10000           | Maximum number  |
+>|                 |                 |                 | of integrator   |
+>|                 |                 |                 | steps           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nonlinear_solve | OT_STRING       | "newton"        | (newton|functio |
+>| r_iteration     |                 |                 | nal)            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pretype         | OT_STRING       | "none"          | (none|left|righ |
+>|                 |                 |                 | t|both)         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pretypeB        | OT_STRING       | GenericType()   | (none|left|righ |
+>|                 |                 |                 | t|both)         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| quad_err_con    | OT_BOOLEAN      | false           | Should the      |
+>|                 |                 |                 | quadratures     |
+>|                 |                 |                 | affect the step |
+>|                 |                 |                 | size control    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| reltol          | OT_REAL         | 0.000           | Relative        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the IVP         |
+>|                 |                 |                 | solution        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| reltolB         | OT_REAL         | GenericType()   | Relative        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the adjoint     |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | solution        |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to reltol]      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| sensitivity_met | OT_STRING       | "simultaneous"  | (simultaneous|s |
+>| hod             |                 |                 | taggered)       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| steps_per_check | OT_INTEGER      | 20              | Number of steps |
+>| point           |                 |                 | between two     |
+>|                 |                 |                 | consecutive     |
+>|                 |                 |                 | checkpoints     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| stop_at_end     | OT_BOOLEAN      | true            | Stop the        |
+>|                 |                 |                 | integrator at   |
+>|                 |                 |                 | the end of the  |
+>|                 |                 |                 | interval        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| upper_bandwidth | OT_INTEGER      | GenericType()   | Upper band-     |
+>|                 |                 |                 | width of banded |
+>|                 |                 |                 | Jacobian        |
+>|                 |                 |                 | (estimations)   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| upper_bandwidth | OT_INTEGER      | GenericType()   | Upper band-     |
+>| B               |                 |                 | width of banded |
+>|                 |                 |                 | jacobians for   |
+>|                 |                 |                 | backward        |
+>|                 |                 |                 | integration     |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to upper_bandwi |
+>|                 |                 |                 | dth]            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| use_preconditio | OT_BOOLEAN      | false           | Precondition an |
+>| ner             |                 |                 | iterative       |
+>|                 |                 |                 | solver          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| use_preconditio | OT_BOOLEAN      | GenericType()   | Precondition an |
+>| nerB            |                 |                 | iterative       |
+>|                 |                 |                 | solver for the  |
+>|                 |                 |                 | backwards       |
+>|                 |                 |                 | problem         |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to use_precondi |
+>|                 |                 |                 | tioner]         |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available monitors
+>+---------+
+>|   Id    |
+>+=========+
+>| djacB   |
+>+---------+
+>| psetupB |
+>+---------+
+>| res     |
+>+---------+
+>| resB    |
+>+---------+
+>| resQB   |
+>+---------+
+>| reset   |
+>+---------+
+>
+>>List of available stats
+>+-------------+
+>|     Id      |
+>+=============+
+>| nlinsetups  |
+>+-------------+
+>| nlinsetupsB |
+>+-------------+
+>| nsteps      |
+>+-------------+
+>| nstepsB     |
+>+-------------+
+>
+>idas
+>
+>Interface to IDAS from the Sundials suite.
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| abstol          | OT_REAL         | 0.000           | Absolute        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the IVP         |
+>|                 |                 |                 | solution        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| abstolB         | OT_REAL         | GenericType()   | Absolute        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the adjoint     |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | solution        |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to abstol]      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| abstolv         | OT_REALVECTOR   |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| calc_ic         | OT_BOOLEAN      | true            | Use IDACalcIC   |
+>|                 |                 |                 | to get          |
+>|                 |                 |                 | consistent      |
+>|                 |                 |                 | initial         |
+>|                 |                 |                 | conditions.     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| calc_icB        | OT_BOOLEAN      | GenericType()   | Use IDACalcIC   |
+>|                 |                 |                 | to get          |
+>|                 |                 |                 | consistent      |
+>|                 |                 |                 | initial         |
+>|                 |                 |                 | conditions for  |
+>|                 |                 |                 | backwards       |
+>|                 |                 |                 | system          |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to calc_ic].    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| cj_scaling      | OT_BOOLEAN      | false           | IDAS scaling on |
+>|                 |                 |                 | cj for the      |
+>|                 |                 |                 | user-defined    |
+>|                 |                 |                 | linear solver   |
+>|                 |                 |                 | module          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| disable_interna | OT_BOOLEAN      | false           | Disable IDAS    |
+>| l_warnings      |                 |                 | internal        |
+>|                 |                 |                 | warning         |
+>|                 |                 |                 | messages        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| exact_jacobian  | OT_BOOLEAN      | true            | Use exact       |
+>|                 |                 |                 | Jacobian        |
+>|                 |                 |                 | information for |
+>|                 |                 |                 | the forward     |
+>|                 |                 |                 | integration     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| exact_jacobianB | OT_BOOLEAN      | GenericType()   | Use exact       |
+>|                 |                 |                 | Jacobian        |
+>|                 |                 |                 | information for |
+>|                 |                 |                 | the backward    |
+>|                 |                 |                 | integration     |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to              |
+>|                 |                 |                 | exact_jacobian] |
+>+-----------------+-----------------+-----------------+-----------------+
+>| extra_fsens_cal | OT_BOOLEAN      | false           | Call calc ic an |
+>| c_ic            |                 |                 | extra time,     |
+>|                 |                 |                 | with fsens=0    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| finite_differen | OT_BOOLEAN      | false           | Use finite      |
+>| ce_fsens        |                 |                 | differences to  |
+>|                 |                 |                 | approximate the |
+>|                 |                 |                 | forward         |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | equations (if   |
+>|                 |                 |                 | AD is not       |
+>|                 |                 |                 | available)      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| first_time      | OT_REAL         | GenericType()   | First requested |
+>|                 |                 |                 | time as a       |
+>|                 |                 |                 | fraction of the |
+>|                 |                 |                 | time interval   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_abstol    | OT_REAL         | GenericType()   | Absolute        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the forward     |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | solution        |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to abstol]      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_abstolv   | OT_REALVECTOR   |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_err_con   | OT_BOOLEAN      | true            | include the     |
+>|                 |                 |                 | forward         |
+>|                 |                 |                 | sensitivities   |
+>|                 |                 |                 | in all error    |
+>|                 |                 |                 | controls        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_reltol    | OT_REAL         | GenericType()   | Relative        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the forward     |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | solution        |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to reltol]      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_scaling_f | OT_REALVECTOR   | GenericType()   | Scaling factor  |
+>| actors          |                 |                 | for the         |
+>|                 |                 |                 | components if   |
+>|                 |                 |                 | finite          |
+>|                 |                 |                 | differences is  |
+>|                 |                 |                 | used            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fsens_sensitivi | OT_INTEGERVECTO | GenericType()   | Specifies which |
+>| y_parameters    | R               |                 | components will |
+>|                 |                 |                 | be used when    |
+>|                 |                 |                 | estimating the  |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | equations       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| init_xdot       | OT_REALVECTOR   | GenericType()   | Initial values  |
+>|                 |                 |                 | for the state   |
+>|                 |                 |                 | derivatives     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| interpolation_t | OT_STRING       | "hermite"       | Type of         |
+>| ype             |                 |                 | interpolation   |
+>|                 |                 |                 | for the adjoint |
+>|                 |                 |                 | sensitivities ( |
+>|                 |                 |                 | hermite|polynom |
+>|                 |                 |                 | ial)            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| iterative_solve | OT_STRING       | "gmres"         | (gmres|bcgstab| |
+>| r               |                 |                 | tfqmr)          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| iterative_solve | OT_STRING       | GenericType()   | (gmres|bcgstab| |
+>| rB              |                 |                 | tfqmr)          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver   | OT_STRING       | GenericType()   | A custom linear |
+>|                 |                 |                 | solver creator  |
+>|                 |                 |                 | function        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solverB  | OT_STRING       | GenericType()   | A custom linear |
+>|                 |                 |                 | solver creator  |
+>|                 |                 |                 | function for    |
+>|                 |                 |                 | backwards       |
+>|                 |                 |                 | integration     |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to              |
+>|                 |                 |                 | linear_solver]  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver_o | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ptions          |                 |                 | passed to the   |
+>|                 |                 |                 | linear solver   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver_o | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ptionsB         |                 |                 | passed to the   |
+>|                 |                 |                 | linear solver   |
+>|                 |                 |                 | for backwards   |
+>|                 |                 |                 | integration     |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to linear_solve |
+>|                 |                 |                 | r_options]      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver_t | OT_STRING       | "dense"         | (user_defined|d |
+>| ype             |                 |                 | ense|banded|ite |
+>|                 |                 |                 | rative)         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver_t | OT_STRING       | GenericType()   | (user_defined|d |
+>| ypeB            |                 |                 | ense|banded|ite |
+>|                 |                 |                 | rative)         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| lower_bandwidth | OT_INTEGER      | GenericType()   | Lower band-     |
+>|                 |                 |                 | width of banded |
+>|                 |                 |                 | Jacobian        |
+>|                 |                 |                 | (estimations)   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| lower_bandwidth | OT_INTEGER      | GenericType()   | lower band-     |
+>| B               |                 |                 | width of banded |
+>|                 |                 |                 | jacobians for   |
+>|                 |                 |                 | backward        |
+>|                 |                 |                 | integration     |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to lower_bandwi |
+>|                 |                 |                 | dth]            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_krylov      | OT_INTEGER      | 10              | Maximum Krylov  |
+>|                 |                 |                 | subspace size   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_krylovB     | OT_INTEGER      | GenericType()   | Maximum krylov  |
+>|                 |                 |                 | subspace size   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_multistep_o | OT_INTEGER      | 5               |                 |
+>| rder            |                 |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_num_steps   | OT_INTEGER      | 10000           | Maximum number  |
+>|                 |                 |                 | of integrator   |
+>|                 |                 |                 | steps           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_step_size   | OT_REAL         | 0               | Maximim step    |
+>|                 |                 |                 | size            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pretype         | OT_STRING       | "none"          | (none|left|righ |
+>|                 |                 |                 | t|both)         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pretypeB        | OT_STRING       | GenericType()   | (none|left|righ |
+>|                 |                 |                 | t|both)         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| quad_err_con    | OT_BOOLEAN      | false           | Should the      |
+>|                 |                 |                 | quadratures     |
+>|                 |                 |                 | affect the step |
+>|                 |                 |                 | size control    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| reltol          | OT_REAL         | 0.000           | Relative        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the IVP         |
+>|                 |                 |                 | solution        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| reltolB         | OT_REAL         | GenericType()   | Relative        |
+>|                 |                 |                 | tolerence for   |
+>|                 |                 |                 | the adjoint     |
+>|                 |                 |                 | sensitivity     |
+>|                 |                 |                 | solution        |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to reltol]      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| sensitivity_met | OT_STRING       | "simultaneous"  | (simultaneous|s |
+>| hod             |                 |                 | taggered)       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| steps_per_check | OT_INTEGER      | 20              | Number of steps |
+>| point           |                 |                 | between two     |
+>|                 |                 |                 | consecutive     |
+>|                 |                 |                 | checkpoints     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| stop_at_end     | OT_BOOLEAN      | true            | Stop the        |
+>|                 |                 |                 | integrator at   |
+>|                 |                 |                 | the end of the  |
+>|                 |                 |                 | interval        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| suppress_algebr | OT_BOOLEAN      | false           | Supress         |
+>| aic             |                 |                 | algebraic       |
+>|                 |                 |                 | variables in    |
+>|                 |                 |                 | the error       |
+>|                 |                 |                 | testing         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| upper_bandwidth | OT_INTEGER      | GenericType()   | Upper band-     |
+>|                 |                 |                 | width of banded |
+>|                 |                 |                 | Jacobian        |
+>|                 |                 |                 | (estimations)   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| upper_bandwidth | OT_INTEGER      | GenericType()   | Upper band-     |
+>| B               |                 |                 | width of banded |
+>|                 |                 |                 | jacobians for   |
+>|                 |                 |                 | backward        |
+>|                 |                 |                 | integration     |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to upper_bandwi |
+>|                 |                 |                 | dth]            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| use_preconditio | OT_BOOLEAN      | false           | Precondition an |
+>| ner             |                 |                 | iterative       |
+>|                 |                 |                 | solver          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| use_preconditio | OT_BOOLEAN      | GenericType()   | Precondition an |
+>| nerB            |                 |                 | iterative       |
+>|                 |                 |                 | solver for the  |
+>|                 |                 |                 | backwards       |
+>|                 |                 |                 | problem         |
+>|                 |                 |                 | [default: equal |
+>|                 |                 |                 | to use_precondi |
+>|                 |                 |                 | tioner]         |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available monitors
+>+--------------------------+
+>|            Id            |
+>+==========================+
+>| bjacB                    |
+>+--------------------------+
+>| correctInitialConditions |
+>+--------------------------+
+>| jtimesB                  |
+>+--------------------------+
+>| psetup                   |
+>+--------------------------+
+>| psetupB                  |
+>+--------------------------+
+>| psolveB                  |
+>+--------------------------+
+>| res                      |
+>+--------------------------+
+>| resB                     |
+>+--------------------------+
+>| resS                     |
+>+--------------------------+
+>| rhsQB                    |
+>+--------------------------+
+>
+>>List of available stats
+>+-------------+
+>|     Id      |
+>+=============+
+>| nlinsetups  |
+>+-------------+
+>| nlinsetupsB |
+>+-------------+
+>| nsteps      |
+>+-------------+
+>| nstepsB     |
+>+-------------+
+>
+>collocation
+>
+>Fixed-step implicit Runge-Kutta integrator ODE/DAE integrator based on
+>collocation schemes
+>
+>The method is still under development
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| collocation_sch | OT_STRING       | "radau"         | Collocation     |
+>| eme             |                 |                 | scheme (radau|l |
+>|                 |                 |                 | egendre)        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| implicit_solver | OT_STRING       | GenericType()   | An implicit     |
+>|                 |                 |                 | function solver |
+>+-----------------+-----------------+-----------------+-----------------+
+>| implicit_solver | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| _options        |                 |                 | passed to the   |
+>|                 |                 |                 | NLP Solver      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| interpolation_o | OT_INTEGER      | 3               | Order of the    |
+>| rder            |                 |                 | interpolating   |
+>|                 |                 |                 | polynomials     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| number_of_finit | OT_INTEGER      | 20              | Number of       |
+>| e_elements      |                 |                 | finite elements |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>oldcollocation
+>
+>Collocation integrator ODE/DAE integrator based on collocation
+>
+>The method is still under development
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| collocation_sch | OT_STRING       | "radau"         | Collocation     |
+>| eme             |                 |                 | scheme (radau|l |
+>|                 |                 |                 | egendre)        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| expand_f        | OT_BOOLEAN      | false           | Expand the      |
+>|                 |                 |                 | ODE/DAE         |
+>|                 |                 |                 | residual        |
+>|                 |                 |                 | function in an  |
+>|                 |                 |                 | SX graph        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| expand_q        | OT_BOOLEAN      | false           | Expand the      |
+>|                 |                 |                 | quadrature      |
+>|                 |                 |                 | function in an  |
+>|                 |                 |                 | SX graph        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| hotstart        | OT_BOOLEAN      | true            | Initialize the  |
+>|                 |                 |                 | trajectory at   |
+>|                 |                 |                 | the previous    |
+>|                 |                 |                 | solution        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| implicit_solver | OT_STRING       | GenericType()   | An implicit     |
+>|                 |                 |                 | function solver |
+>+-----------------+-----------------+-----------------+-----------------+
+>| implicit_solver | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| _options        |                 |                 | passed to the   |
+>|                 |                 |                 | implicit solver |
+>+-----------------+-----------------+-----------------+-----------------+
+>| interpolation_o | OT_INTEGER      | 3               | Order of the    |
+>| rder            |                 |                 | interpolating   |
+>|                 |                 |                 | polynomials     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| number_of_finit | OT_INTEGER      | 20              | Number of       |
+>| e_elements      |                 |                 | finite elements |
+>+-----------------+-----------------+-----------------+-----------------+
+>| startup_integra | OT_STRING       | GenericType()   | An ODE/DAE      |
+>| tor             |                 |                 | integrator that |
+>|                 |                 |                 | can be used to  |
+>|                 |                 |                 | generate a      |
+>|                 |                 |                 | startup         |
+>|                 |                 |                 | trajectory      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| startup_integra | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| tor_options     |                 |                 | passed to the   |
+>|                 |                 |                 | startup         |
+>|                 |                 |                 | integrator      |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>rk
+>
+>Fixed-step explicit Runge-Kutta integrator for ODEs Currently implements
+>RK4.
+>
+>The method is still under development
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| number_of_finit | OT_INTEGER      | 20              | Number of       |
+>| e_elements      |                 |                 | finite elements |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>Joel Andersson Diagrams
+>
+>C++ includes: integrator.hpp 
+-}
+newtype Integrator = Integrator (ForeignPtr Integrator')
+-- typeclass decl
+class IntegratorClass a where
+  castIntegrator :: a -> Integrator
+instance IntegratorClass Integrator where
+  castIntegrator = id
+
+-- baseclass instances
+instance FunctionClass Integrator where
+  castFunction (Integrator x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass Integrator where
+  castOptionsFunctionality (Integrator x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass Integrator where
+  castPrintableObject (Integrator x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass Integrator where
+  castSharedObject (Integrator x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass Integrator where
+  castIOInterfaceFunction (Integrator x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal Integrator (Ptr Integrator') where
+  marshal (Integrator x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (Integrator x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__Integrator" 
+  c_delete_casadi__Integrator :: FunPtr (Ptr Integrator' -> IO ())
+instance WrapReturn (Ptr Integrator') Integrator where
+  wrapReturn = (fmap Integrator) . (newForeignPtr c_delete_casadi__Integrator)
+
+
+-- raw decl
+data LinearSolver'
+-- data decl
+{-|
+>Base class for the linear solver classes.
+>
+>Solves the linear system A*X = B or A^T*X = B for X with A square and non-
+>singular
+>
+>If A is structurally singular, an error will be thrown during init. If A is
+>numerically singular, the prepare step will fail.
+>
+>The usual procedure to use LinearSolver is:  init()
+>
+>set the first input (A)
+>
+>prepare()
+>
+>set the second input (b)
+>
+>solve()
+>
+>Repeat steps 4 and 5 to work with other b vectors.
+>
+>The method evaluate() combines the prepare() and solve() step and is
+>therefore more expensive if A is invariant.
+>
+>General information
+>
+>>Input scheme: casadi::LinsolInput (LINSOL_NUM_IN = 2) [linsolIn]
+>+-----------+-------+------------------------------------------------+
+>| Full name | Short |                  Description                   |
+>+===========+=======+================================================+
+>| LINSOL_A  | A     | The square matrix A: sparse, (n x n). .        |
+>+-----------+-------+------------------------------------------------+
+>| LINSOL_B  | B     | The right-hand-side matrix b: dense, (n x m) . |
+>+-----------+-------+------------------------------------------------+
+>
+>>Output scheme: casadi::LinsolOutput (LINSOL_NUM_OUT = 1) [linsolOut]
+>+-----------+-------+----------------------------------------------+
+>| Full name | Short |                 Description                  |
+>+===========+=======+==============================================+
+>| LINSOL_X  | X     | Solution to the linear system of equations . |
+>+-----------+-------+----------------------------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_LinearSolver_csparsecholesky'>csparsecholesky</a>
+>
+>- <a href='#plugin_LinearSolver_csparse'>csparse</a>
+>
+>- <a href='#plugin_LinearSolver_lapacklu'>lapacklu</a>
+>
+>- <a href='#plugin_LinearSolver_lapackqr'>lapackqr</a>
+>
+>- <a href='#plugin_LinearSolver_symbolicqr'>symbolicqr</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>LinearSolver.doc("myextraplugin")
+>
+>csparsecholesky
+>
+>LinearSolver with CSparseCholesky Interface
+>
+>>List of available options
+>+----+------+---------+-------------+
+>| Id | Type | Default | Description |
+>+====+======+=========+=============+
+>+----+------+---------+-------------+
+>
+>csparse
+>
+>LinearSolver with CSparse Interface
+>
+>>List of available options
+>+----+------+---------+-------------+
+>| Id | Type | Default | Description |
+>+====+======+=========+=============+
+>+----+------+---------+-------------+
+>
+>lapacklu
+>
+>This class solves the linear system A.x=b by making an LU factorization of
+>A: A = L.U, with L lower and U upper triangular
+>
+>>List of available options
+>+-----------------------------+------------+---------+-------------+
+>|             Id              |    Type    | Default | Description |
+>+=============================+============+=========+=============+
+>| allow_equilibration_failure | OT_BOOLEAN | false   |             |
+>+-----------------------------+------------+---------+-------------+
+>| equilibration               | OT_BOOLEAN | true    |             |
+>+-----------------------------+------------+---------+-------------+
+>
+>lapackqr
+>
+>This class solves the linear system A.x=b by making an QR factorization of
+>A: A = Q.R, with Q orthogonal and R upper triangular
+>
+>>List of available options
+>+----+------+---------+-------------+
+>| Id | Type | Default | Description |
+>+====+======+=========+=============+
+>+----+------+---------+-------------+
+>
+>symbolicqr
+>
+>LinearSolver based on QR factorization with sparsity pattern based
+>reordering without partial pivoting
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| codegen         | OT_BOOLEAN      | false           | C-code          |
+>|                 |                 |                 | generation      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| compiler        | OT_STRING       | "gcc -fPIC -O2" | Compiler        |
+>|                 |                 |                 | command to be   |
+>|                 |                 |                 | used for        |
+>|                 |                 |                 | compiling       |
+>|                 |                 |                 | generated code  |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>Joel Andersson Diagrams
+>
+>C++ includes: linear_solver.hpp 
+-}
+newtype LinearSolver = LinearSolver (ForeignPtr LinearSolver')
+-- typeclass decl
+class LinearSolverClass a where
+  castLinearSolver :: a -> LinearSolver
+instance LinearSolverClass LinearSolver where
+  castLinearSolver = id
+
+-- baseclass instances
+instance FunctionClass LinearSolver where
+  castFunction (LinearSolver x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass LinearSolver where
+  castOptionsFunctionality (LinearSolver x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass LinearSolver where
+  castPrintableObject (LinearSolver x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass LinearSolver where
+  castSharedObject (LinearSolver x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass LinearSolver where
+  castIOInterfaceFunction (LinearSolver x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal LinearSolver (Ptr LinearSolver') where
+  marshal (LinearSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (LinearSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__LinearSolver" 
+  c_delete_casadi__LinearSolver :: FunPtr (Ptr LinearSolver' -> IO ())
+instance WrapReturn (Ptr LinearSolver') LinearSolver where
+  wrapReturn = (fmap LinearSolver) . (newForeignPtr c_delete_casadi__LinearSolver)
+
+
+-- raw decl
+data LpSolver'
+-- data decl
+{-|
+>LpSolver.
+>
+>Solves the following linear problem:
+>
+>min          c' x x  subject to LBA <= A x <= UBA LBX <= x   <= UBX with x (
+>n x 1) c ( n x 1 ) A sparse matrix ( nc x n) LBA, UBA dense vector (nc x 1)
+>LBX, UBX dense vector (n x 1)  n: number of decision variables (x) nc:
+>number of constraints (A)
+>
+>General information
+>
+>>Input scheme: casadi::LpSolverInput (LP_SOLVER_NUM_IN = 6) [lpIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| LP_SOLVER_C            | c                      | The vector c: dense (n |
+>|                        |                        | x 1) .                 |
+>+------------------------+------------------------+------------------------+
+>| LP_SOLVER_A            | a                      | The matrix A: sparse,  |
+>|                        |                        | (nc x n) - product     |
+>|                        |                        | with x must be dense.  |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| LP_SOLVER_LBA          | lba                    | dense, (nc x 1)        |
+>+------------------------+------------------------+------------------------+
+>| LP_SOLVER_UBA          | uba                    | dense, (nc x 1)        |
+>+------------------------+------------------------+------------------------+
+>| LP_SOLVER_LBX          | lbx                    | dense, (n x 1)         |
+>+------------------------+------------------------+------------------------+
+>| LP_SOLVER_UBX          | ubx                    | dense, (n x 1)         |
+>+------------------------+------------------------+------------------------+
+>
+>>Output scheme: casadi::LpSolverOutput (LP_SOLVER_NUM_OUT = 4) [lpOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| LP_SOLVER_X            | x                      | The primal solution .  |
+>+------------------------+------------------------+------------------------+
+>| LP_SOLVER_COST         | cost                   | The optimal cost .     |
+>+------------------------+------------------------+------------------------+
+>| LP_SOLVER_LAM_A        | lam_a                  | The dual solution      |
+>|                        |                        | corresponding to       |
+>|                        |                        | linear bounds .        |
+>+------------------------+------------------------+------------------------+
+>| LP_SOLVER_LAM_X        | lam_x                  | The dual solution      |
+>|                        |                        | corresponding to       |
+>|                        |                        | simple bounds .        |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_LpSolver_qp'>qp</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>LpSolver.doc("myextraplugin")
+>
+>qp
+>
+>Solve LPs using a QpSolver
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| qp_solver       | OT_STRING       | GenericType()   | The QPSOlver    |
+>|                 |                 |                 | used to solve   |
+>|                 |                 |                 | the LPs.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_solver_optio | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ns              |                 |                 | passed to the   |
+>|                 |                 |                 | QPSOlver        |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available stats
+>+-----------------+
+>|       Id        |
+>+=================+
+>| qp_solver_stats |
+>+-----------------+
+>
+>Joris Gillis Diagrams
+>
+>C++ includes: lp_solver.hpp 
+-}
+newtype LpSolver = LpSolver (ForeignPtr LpSolver')
+-- typeclass decl
+class LpSolverClass a where
+  castLpSolver :: a -> LpSolver
+instance LpSolverClass LpSolver where
+  castLpSolver = id
+
+-- baseclass instances
+instance FunctionClass LpSolver where
+  castFunction (LpSolver x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass LpSolver where
+  castOptionsFunctionality (LpSolver x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass LpSolver where
+  castPrintableObject (LpSolver x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass LpSolver where
+  castSharedObject (LpSolver x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass LpSolver where
+  castIOInterfaceFunction (LpSolver x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal LpSolver (Ptr LpSolver') where
+  marshal (LpSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (LpSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__LpSolver" 
+  c_delete_casadi__LpSolver :: FunPtr (Ptr LpSolver' -> IO ())
+instance WrapReturn (Ptr LpSolver') LpSolver where
+  wrapReturn = (fmap LpSolver) . (newForeignPtr c_delete_casadi__LpSolver)
+
+
+-- raw decl
+data MX'
+-- data decl
+{-|
+-}
+newtype MX = MX (ForeignPtr MX')
+-- typeclass decl
+class MXClass a where
+  castMX :: a -> MX
+instance MXClass MX where
+  castMX = id
+
+-- baseclass instances
+instance PrintableObjectClass MX where
+  castPrintableObject (MX x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass MX where
+  castSharedObject (MX x) = SharedObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal MX (Ptr MX') where
+  marshal (MX x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (MX x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__MX" 
+  c_delete_casadi__MX :: FunPtr (Ptr MX' -> IO ())
+instance WrapReturn (Ptr MX') MX where
+  wrapReturn = (fmap MX) . (newForeignPtr c_delete_casadi__MX)
+
+
+-- raw decl
+data MXFunction'
+-- data decl
+{-|
+>General function mapping from/to MX.
+>
+>Joel Andersson
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>Diagrams
+>
+>C++ includes: mx_function.hpp 
+-}
+newtype MXFunction = MXFunction (ForeignPtr MXFunction')
+-- typeclass decl
+class MXFunctionClass a where
+  castMXFunction :: a -> MXFunction
+instance MXFunctionClass MXFunction where
+  castMXFunction = id
+
+-- baseclass instances
+instance FunctionClass MXFunction where
+  castFunction (MXFunction x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass MXFunction where
+  castOptionsFunctionality (MXFunction x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass MXFunction where
+  castPrintableObject (MXFunction x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass MXFunction where
+  castSharedObject (MXFunction x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass MXFunction where
+  castIOInterfaceFunction (MXFunction x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal MXFunction (Ptr MXFunction') where
+  marshal (MXFunction x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (MXFunction x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__MXFunction" 
+  c_delete_casadi__MXFunction :: FunPtr (Ptr MXFunction' -> IO ())
+instance WrapReturn (Ptr MXFunction') MXFunction where
+  wrapReturn = (fmap MXFunction) . (newForeignPtr c_delete_casadi__MXFunction)
+
+
+-- raw decl
+data NlpSolver'
+-- data decl
+{-|
+>NlpSolver.
+>
+>Solves the following parametric nonlinear program (NLP):min          F(x, p)
+>x  subject to             LBX <=   x    <= UBX LBG <= G(x, p) <= UBG
+>p  == P      nx: number of decision variables     ng: number of constraints
+>np: number of parameters
+>
+>General information
+>
+>>Input scheme: casadi::NlpSolverInput (NLP_SOLVER_NUM_IN = 8) [nlpSolverIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| NLP_SOLVER_X0          | x0                     | Decision variables,    |
+>|                        |                        | initial guess (nx x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_P           | p                      | Value of fixed         |
+>|                        |                        | parameters (np x 1) .  |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LBX         | lbx                    | Decision variables     |
+>|                        |                        | lower bound (nx x 1),  |
+>|                        |                        | default -inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_UBX         | ubx                    | Decision variables     |
+>|                        |                        | upper bound (nx x 1),  |
+>|                        |                        | default +inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LBG         | lbg                    | Constraints lower      |
+>|                        |                        | bound (ng x 1),        |
+>|                        |                        | default -inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_UBG         | ubg                    | Constraints upper      |
+>|                        |                        | bound (ng x 1),        |
+>|                        |                        | default +inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_X0      | lam_x0                 | Lagrange multipliers   |
+>|                        |                        | for bounds on X,       |
+>|                        |                        | initial guess (nx x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_G0      | lam_g0                 | Lagrange multipliers   |
+>|                        |                        | for bounds on G,       |
+>|                        |                        | initial guess (ng x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>
+>>Output scheme: casadi::NlpSolverOutput (NLP_SOLVER_NUM_OUT = 6) [nlpSolverOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| NLP_SOLVER_X           | x                      | Decision variables at  |
+>|                        |                        | the optimal solution   |
+>|                        |                        | (nx x 1) .             |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_F           | f                      | Cost function value at |
+>|                        |                        | the optimal solution   |
+>|                        |                        | (1 x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_G           | g                      | Constraints function   |
+>|                        |                        | at the optimal         |
+>|                        |                        | solution (ng x 1) .    |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_X       | lam_x                  | Lagrange multipliers   |
+>|                        |                        | for bounds on X at the |
+>|                        |                        | solution (nx x 1) .    |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_G       | lam_g                  | Lagrange multipliers   |
+>|                        |                        | for bounds on G at the |
+>|                        |                        | solution (ng x 1) .    |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_P       | lam_p                  | Lagrange multipliers   |
+>|                        |                        | for bounds on P at the |
+>|                        |                        | solution (np x 1) .    |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| eval_errors_ | OT_BOOLEAN   | false        | When errors  | casadi::NlpS |
+>| fatal        |              |              | occur during | olverInterna |
+>|              |              |              | evaluation   | l            |
+>|              |              |              | of           |              |
+>|              |              |              | f,g,...,stop |              |
+>|              |              |              | the          |              |
+>|              |              |              | iterations   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| expand       | OT_BOOLEAN   | false        | Expand the   | casadi::NlpS |
+>|              |              |              | NLP function | olverInterna |
+>|              |              |              | in terms of  | l            |
+>|              |              |              | scalar       |              |
+>|              |              |              | operations,  |              |
+>|              |              |              | i.e. MX->SX  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| grad_f       | OT_FUNCTION  | GenericType( | Function for | casadi::NlpS |
+>|              |              | )            | calculating  | olverInterna |
+>|              |              |              | the gradient | l            |
+>|              |              |              | of the       |              |
+>|              |              |              | objective    |              |
+>|              |              |              | (column, aut |              |
+>|              |              |              | ogenerated   |              |
+>|              |              |              | by default)  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| grad_lag     | OT_FUNCTION  | GenericType( | Function for | casadi::NlpS |
+>|              |              | )            | calculating  | olverInterna |
+>|              |              |              | the gradient | l            |
+>|              |              |              | of the       |              |
+>|              |              |              | Lagrangian ( |              |
+>|              |              |              | autogenerate |              |
+>|              |              |              | d by         |              |
+>|              |              |              | default)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| hess_lag     | OT_FUNCTION  | GenericType( | Function for | casadi::NlpS |
+>|              |              | )            | calculating  | olverInterna |
+>|              |              |              | the Hessian  | l            |
+>|              |              |              | of the       |              |
+>|              |              |              | Lagrangian ( |              |
+>|              |              |              | autogenerate |              |
+>|              |              |              | d by         |              |
+>|              |              |              | default)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ignore_check | OT_BOOLEAN   | false        | If set to    | casadi::NlpS |
+>| _vec         |              |              | true, the    | olverInterna |
+>|              |              |              | input shape  | l            |
+>|              |              |              | of F will    |              |
+>|              |              |              | not be       |              |
+>|              |              |              | checked.     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| iteration_ca | OT_CALLBACK  | GenericType( | A function   | casadi::NlpS |
+>| llback       |              | )            | that will be | olverInterna |
+>|              |              |              | called at    | l            |
+>|              |              |              | each         |              |
+>|              |              |              | iteration    |              |
+>|              |              |              | with the     |              |
+>|              |              |              | solver as    |              |
+>|              |              |              | input. Check |              |
+>|              |              |              | documentatio |              |
+>|              |              |              | n of         |              |
+>|              |              |              | Callback .   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| iteration_ca | OT_BOOLEAN   | false        | If set to    | casadi::NlpS |
+>| llback_ignor |              |              | true, errors | olverInterna |
+>| e_errors     |              |              | thrown by it | l            |
+>|              |              |              | eration_call |              |
+>|              |              |              | back will be |              |
+>|              |              |              | ignored.     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| iteration_ca | OT_INTEGER   | 1            | Only call    | casadi::NlpS |
+>| llback_step  |              |              | the callback | olverInterna |
+>|              |              |              | function     | l            |
+>|              |              |              | every few    |              |
+>|              |              |              | iterations.  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| jac_f        | OT_FUNCTION  | GenericType( | Function for | casadi::NlpS |
+>|              |              | )            | calculating  | olverInterna |
+>|              |              |              | the jacobian | l            |
+>|              |              |              | of the       |              |
+>|              |              |              | objective    |              |
+>|              |              |              | (sparse row, |              |
+>|              |              |              | autogenerate |              |
+>|              |              |              | d by         |              |
+>|              |              |              | default)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| jac_g        | OT_FUNCTION  | GenericType( | Function for | casadi::NlpS |
+>|              |              | )            | calculating  | olverInterna |
+>|              |              |              | the Jacobian | l            |
+>|              |              |              | of the       |              |
+>|              |              |              | constraints  |              |
+>|              |              |              | (autogenerat |              |
+>|              |              |              | ed by        |              |
+>|              |              |              | default)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warn_initial | OT_BOOLEAN   | false        | Warn if the  | casadi::NlpS |
+>| _bounds      |              |              | initial      | olverInterna |
+>|              |              |              | guess does   | l            |
+>|              |              |              | not satisfy  |              |
+>|              |              |              | LBX and UBX  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_NlpSolver_ipopt'>ipopt</a>
+>
+>- <a href='#plugin_NlpSolver_knitro'>knitro</a>
+>
+>- <a href='#plugin_NlpSolver_snopt'>snopt</a>
+>
+>- <a href='#plugin_NlpSolver_worhp'>worhp</a>
+>
+>- <a href='#plugin_NlpSolver_scpgen'>scpgen</a>
+>
+>- <a href='#plugin_NlpSolver_sqpmethod'>sqpmethod</a>
+>
+>- <a href='#plugin_NlpSolver_stabilizedsqp'>stabilizedsqp</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>NlpSolver.doc("myextraplugin")
+>
+>ipopt
+>
+>When in warmstart mode, output NLP_SOLVER_LAM_X may be used as input
+>
+>NOTE: Even when max_iter == 0, it is not guaranteed that
+>input(NLP_SOLVER_X0) == output(NLP_SOLVER_X). Indeed if bounds on X or
+>constraints are unmet, they will differ.
+>
+>For a good tutorial on IPOPT,
+>seehttp://drops.dagstuhl.de/volltexte/2009/2089/pdf/09061.WaechterAndreas.Paper.2089.pdf
+>
+>A good resource about the algorithms in IPOPT is: Wachter and L. T. Biegler,
+>On the Implementation of an Interior-Point Filter Line-Search Algorithm for
+>Large-Scale Nonlinear Programming, Mathematical Programming 106(1), pp.
+>25-57, 2006 (As Research Report RC 23149, IBM T. J. Watson Research Center,
+>Yorktown, USA
+>
+>Caveats: with default options, multipliers for the decision variables are
+>wrong for equality constraints. Change the 'fixed_variable_treatment' to
+>'make_constraint' or 'relax_bounds' to obtain correct results.
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| accept_after_ma | OT_INTEGER      | -1              | Accept a trial  |
+>| x_steps         |                 |                 | point after     |
+>|                 |                 |                 | maximal this    |
+>|                 |                 |                 | number of       |
+>|                 |                 |                 | steps. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| accept_every_tr | OT_STRING       | no              | Always accept   |
+>| ial_step        |                 |                 | the first trial |
+>|                 |                 |                 | step. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| acceptable_comp | OT_REAL         | 0.010           | "Acceptance"    |
+>| l_inf_tol       |                 |                 | threshold for   |
+>|                 |                 |                 | the             |
+>|                 |                 |                 | complementarity |
+>|                 |                 |                 | conditions.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| acceptable_cons | OT_REAL         | 0.010           | "Acceptance"    |
+>| tr_viol_tol     |                 |                 | threshold for   |
+>|                 |                 |                 | the constraint  |
+>|                 |                 |                 | violation. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| acceptable_dual | OT_REAL         | 1.000e+10       | "Acceptance"    |
+>| _inf_tol        |                 |                 | threshold for   |
+>|                 |                 |                 | the dual        |
+>|                 |                 |                 | infeasibility.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| acceptable_iter | OT_INTEGER      | 15              | Number of       |
+>|                 |                 |                 | "acceptable"    |
+>|                 |                 |                 | iterates before |
+>|                 |                 |                 | triggering      |
+>|                 |                 |                 | termination.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| acceptable_obj_ | OT_REAL         | 1.000e+20       | "Acceptance"    |
+>| change_tol      |                 |                 | stopping        |
+>|                 |                 |                 | criterion based |
+>|                 |                 |                 | on objective    |
+>|                 |                 |                 | function        |
+>|                 |                 |                 | change. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| acceptable_tol  | OT_REAL         | 0.000           | "Acceptable"    |
+>|                 |                 |                 | convergence     |
+>|                 |                 |                 | tolerance       |
+>|                 |                 |                 | (relative).     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| adaptive_mu_glo | OT_STRING       | obj-constr-     | Globalization   |
+>| balization      |                 | filter          | strategy for    |
+>|                 |                 |                 | the adaptive mu |
+>|                 |                 |                 | selection mode. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| adaptive_mu_kkt | OT_STRING       | 2-norm-squared  | Norm used for   |
+>| _norm_type      |                 |                 | the KKT error   |
+>|                 |                 |                 | in the adaptive |
+>|                 |                 |                 | mu              |
+>|                 |                 |                 | globalization   |
+>|                 |                 |                 | strategies.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| adaptive_mu_kkt | OT_REAL         | 1.000           | Sufficient      |
+>| error_red_fact  |                 |                 | decrease factor |
+>|                 |                 |                 | for "kkt-error" |
+>|                 |                 |                 | globalization   |
+>|                 |                 |                 | strategy. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| adaptive_mu_kkt | OT_INTEGER      | 4               | Maximum number  |
+>| error_red_iters |                 |                 | of iterations   |
+>|                 |                 |                 | requiring       |
+>|                 |                 |                 | sufficient      |
+>|                 |                 |                 | progress. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| adaptive_mu_mon | OT_REAL         | 0.800           | Determines the  |
+>| otone_init_fact |                 |                 | initial value   |
+>| or              |                 |                 | of the barrier  |
+>|                 |                 |                 | parameter when  |
+>|                 |                 |                 | switching to    |
+>|                 |                 |                 | the monotone    |
+>|                 |                 |                 | mode. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| adaptive_mu_res | OT_STRING       | no              | Indicates if    |
+>| tore_previous_i |                 |                 | the previous    |
+>| terate          |                 |                 | iterate should  |
+>|                 |                 |                 | be restored if  |
+>|                 |                 |                 | the monotone    |
+>|                 |                 |                 | mode is         |
+>|                 |                 |                 | entered. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| adaptive_mu_saf | OT_REAL         | 0               | (see IPOPT      |
+>| eguard_factor   |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| alpha_for_y     | OT_STRING       | primal          | Method to       |
+>|                 |                 |                 | determine the   |
+>|                 |                 |                 | step size for   |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | multipliers.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| alpha_for_y_tol | OT_REAL         | 10              | Tolerance for   |
+>|                 |                 |                 | switching to    |
+>|                 |                 |                 | full equality   |
+>|                 |                 |                 | multiplier      |
+>|                 |                 |                 | steps. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| alpha_min_frac  | OT_REAL         | 0.050           | Safety factor   |
+>|                 |                 |                 | for the minimal |
+>|                 |                 |                 | step size       |
+>|                 |                 |                 | (before         |
+>|                 |                 |                 | switching to    |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | phase). (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| alpha_red_facto | OT_REAL         | 0.500           | Fractional      |
+>| r               |                 |                 | reduction of    |
+>|                 |                 |                 | the trial step  |
+>|                 |                 |                 | size in the     |
+>|                 |                 |                 | backtracking    |
+>|                 |                 |                 | line search.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| barrier_tol_fac | OT_REAL         | 10              | Factor for mu   |
+>| tor             |                 |                 | in barrier stop |
+>|                 |                 |                 | test. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| bound_frac      | OT_REAL         | 0.010           | Desired minimum |
+>|                 |                 |                 | relative        |
+>|                 |                 |                 | distance from   |
+>|                 |                 |                 | the initial     |
+>|                 |                 |                 | point to bound. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| bound_mult_init | OT_STRING       | constant        | Initialization  |
+>| _method         |                 |                 | method for      |
+>|                 |                 |                 | bound           |
+>|                 |                 |                 | multipliers     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| bound_mult_init | OT_REAL         | 1               | Initial value   |
+>| _val            |                 |                 | for the bound   |
+>|                 |                 |                 | multipliers.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| bound_mult_rese | OT_REAL         | 1000            | Threshold for   |
+>| t_threshold     |                 |                 | resetting bound |
+>|                 |                 |                 | multipliers     |
+>|                 |                 |                 | after the       |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | phase. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| bound_push      | OT_REAL         | 0.010           | Desired minimum |
+>|                 |                 |                 | absolute        |
+>|                 |                 |                 | distance from   |
+>|                 |                 |                 | the initial     |
+>|                 |                 |                 | point to bound. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| bound_relax_fac | OT_REAL         | 0.000           | Factor for      |
+>| tor             |                 |                 | initial         |
+>|                 |                 |                 | relaxation of   |
+>|                 |                 |                 | the bounds.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| check_derivativ | OT_STRING       | no              | Indicates       |
+>| es_for_naninf   |                 |                 | whether it is   |
+>|                 |                 |                 | desired to      |
+>|                 |                 |                 | check for       |
+>|                 |                 |                 | Nan/Inf in      |
+>|                 |                 |                 | derivative      |
+>|                 |                 |                 | matrices (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| chi_cup         | OT_REAL         | 1.500           | LIFENG WRITES   |
+>|                 |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| chi_hat         | OT_REAL         | 2               | LIFENG WRITES   |
+>|                 |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| chi_tilde       | OT_REAL         | 5               | LIFENG WRITES   |
+>|                 |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| compl_inf_tol   | OT_REAL         | 0.000           | Desired         |
+>|                 |                 |                 | threshold for   |
+>|                 |                 |                 | the             |
+>|                 |                 |                 | complementarity |
+>|                 |                 |                 | conditions.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| con_integer_md  | OT_DICTIONARY   | None            | Integer         |
+>|                 |                 |                 | metadata (a     |
+>|                 |                 |                 | dictionary with |
+>|                 |                 |                 | lists of        |
+>|                 |                 |                 | integers) about |
+>|                 |                 |                 | constraints to  |
+>|                 |                 |                 | be passed to    |
+>|                 |                 |                 | IPOPT           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| con_numeric_md  | OT_DICTIONARY   | None            | Numeric         |
+>|                 |                 |                 | metadata (a     |
+>|                 |                 |                 | dictionary with |
+>|                 |                 |                 | lists of reals) |
+>|                 |                 |                 | about           |
+>|                 |                 |                 | constraints to  |
+>|                 |                 |                 | be passed to    |
+>|                 |                 |                 | IPOPT           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| con_string_md   | OT_DICTIONARY   | None            | String metadata |
+>|                 |                 |                 | (a dictionary   |
+>|                 |                 |                 | with lists of   |
+>|                 |                 |                 | strings) about  |
+>|                 |                 |                 | constraints to  |
+>|                 |                 |                 | be passed to    |
+>|                 |                 |                 | IPOPT           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| constr_mult_ini | OT_REAL         | 1000            | Maximum allowed |
+>| t_max           |                 |                 | least-square    |
+>|                 |                 |                 | guess of        |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | multipliers.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| constr_mult_res | OT_REAL         | 0               | Threshold for   |
+>| et_threshold    |                 |                 | resetting       |
+>|                 |                 |                 | equality and    |
+>|                 |                 |                 | inequality      |
+>|                 |                 |                 | multipliers     |
+>|                 |                 |                 | after           |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | phase. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| constr_viol_tol | OT_REAL         | 0.000           | Desired         |
+>|                 |                 |                 | threshold for   |
+>|                 |                 |                 | the constraint  |
+>|                 |                 |                 | violation. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| constraint_viol | OT_STRING       | 1-norm          | Norm to be used |
+>| ation_norm_type |                 |                 | for the         |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | violation in    |
+>|                 |                 |                 | the line        |
+>|                 |                 |                 | search. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| corrector_compl | OT_REAL         | 1               | Complementarity |
+>| _avrg_red_fact  |                 |                 | tolerance       |
+>|                 |                 |                 | factor for      |
+>|                 |                 |                 | accepting       |
+>|                 |                 |                 | corrector step  |
+>|                 |                 |                 | (unsupported!). |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| corrector_type  | OT_STRING       | none            | The type of     |
+>|                 |                 |                 | corrector steps |
+>|                 |                 |                 | that should be  |
+>|                 |                 |                 | taken           |
+>|                 |                 |                 | (unsupported!). |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| delta           | OT_REAL         | 1               | Multiplier for  |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | violation in    |
+>|                 |                 |                 | the switching   |
+>|                 |                 |                 | rule. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| delta_y_max     | OT_REAL         | 1.000e+12       | a parameter     |
+>|                 |                 |                 | used to check   |
+>|                 |                 |                 | if the fast     |
+>|                 |                 |                 | direction can   |
+>|                 |                 |                 | be used asthe   |
+>|                 |                 |                 | line search     |
+>|                 |                 |                 | direction (for  |
+>|                 |                 |                 | Chen-Goldfarb   |
+>|                 |                 |                 | line search).   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| dependency_dete | OT_STRING       | no              | Indicates if    |
+>| ction_with_rhs  |                 |                 | the right hand  |
+>|                 |                 |                 | sides of the    |
+>|                 |                 |                 | constraints     |
+>|                 |                 |                 | should be       |
+>|                 |                 |                 | considered      |
+>|                 |                 |                 | during          |
+>|                 |                 |                 | dependency      |
+>|                 |                 |                 | detection (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| dependency_dete | OT_STRING       | none            | Indicates which |
+>| ctor            |                 |                 | linear solver   |
+>|                 |                 |                 | should be used  |
+>|                 |                 |                 | to detect       |
+>|                 |                 |                 | linearly        |
+>|                 |                 |                 | dependent       |
+>|                 |                 |                 | equality        |
+>|                 |                 |                 | constraints.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| derivative_test | OT_STRING       | none            | Enable          |
+>|                 |                 |                 | derivative      |
+>|                 |                 |                 | checker (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| derivative_test | OT_INTEGER      | -2              | Index of first  |
+>| _first_index    |                 |                 | quantity to be  |
+>|                 |                 |                 | checked by      |
+>|                 |                 |                 | derivative      |
+>|                 |                 |                 | checker (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| derivative_test | OT_REAL         | 0.000           | Size of the     |
+>| _perturbation   |                 |                 | finite          |
+>|                 |                 |                 | difference      |
+>|                 |                 |                 | perturbation in |
+>|                 |                 |                 | derivative      |
+>|                 |                 |                 | test. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| derivative_test | OT_STRING       | no              | Indicates       |
+>| _print_all      |                 |                 | whether         |
+>|                 |                 |                 | information for |
+>|                 |                 |                 | all estimated   |
+>|                 |                 |                 | derivatives     |
+>|                 |                 |                 | should be       |
+>|                 |                 |                 | printed. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| derivative_test | OT_REAL         | 0.000           | Threshold for   |
+>| _tol            |                 |                 | indicating      |
+>|                 |                 |                 | wrong           |
+>|                 |                 |                 | derivative.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| diverging_itera | OT_REAL         | 1.000e+20       | Threshold for   |
+>| tes_tol         |                 |                 | maximal value   |
+>|                 |                 |                 | of primal       |
+>|                 |                 |                 | iterates. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| dual_inf_tol    | OT_REAL         | 1               | Desired         |
+>|                 |                 |                 | threshold for   |
+>|                 |                 |                 | the dual        |
+>|                 |                 |                 | infeasibility.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| epsilon_c       | OT_REAL         | 0.010           | LIFENG WRITES   |
+>|                 |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| eta_min         | OT_REAL         | 10              | LIFENG WRITES   |
+>|                 |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| eta_penalty     | OT_REAL         | 0.000           | Relaxation      |
+>|                 |                 |                 | factor in the   |
+>|                 |                 |                 | Armijo          |
+>|                 |                 |                 | condition for   |
+>|                 |                 |                 | the penalty     |
+>|                 |                 |                 | function. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| eta_phi         | OT_REAL         | 0.000           | Relaxation      |
+>|                 |                 |                 | factor in the   |
+>|                 |                 |                 | Armijo          |
+>|                 |                 |                 | condition. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| evaluate_orig_o | OT_STRING       | yes             | Determines if   |
+>| bj_at_resto_tri |                 |                 | the original    |
+>| al              |                 |                 | objective       |
+>|                 |                 |                 | function should |
+>|                 |                 |                 | be evaluated at |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | phase trial     |
+>|                 |                 |                 | points. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| expect_infeasib | OT_STRING       | no              | Enable          |
+>| le_problem      |                 |                 | heuristics to   |
+>|                 |                 |                 | quickly detect  |
+>|                 |                 |                 | an infeasible   |
+>|                 |                 |                 | problem. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| expect_infeasib | OT_REAL         | 0.001           | Threshold for   |
+>| le_problem_ctol |                 |                 | disabling "expe |
+>|                 |                 |                 | ct_infeasible_p |
+>|                 |                 |                 | roblem" option. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| expect_infeasib | OT_REAL         | 100000000       | Multiplier      |
+>| le_problem_ytol |                 |                 | threshold for   |
+>|                 |                 |                 | activating "exp |
+>|                 |                 |                 | ect_infeasible_ |
+>|                 |                 |                 | problem"        |
+>|                 |                 |                 | option. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fast_des_fact   | OT_REAL         | 0.100           | a parameter     |
+>|                 |                 |                 | used to check   |
+>|                 |                 |                 | if the fast     |
+>|                 |                 |                 | direction can   |
+>|                 |                 |                 | be used asthe   |
+>|                 |                 |                 | line search     |
+>|                 |                 |                 | direction (for  |
+>|                 |                 |                 | Chen-Goldfarb   |
+>|                 |                 |                 | line search).   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fast_step_compu | OT_STRING       | no              | Indicates if    |
+>| tation          |                 |                 | the linear      |
+>|                 |                 |                 | system should   |
+>|                 |                 |                 | be solved       |
+>|                 |                 |                 | quickly. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| file_print_leve | OT_INTEGER      | 5               | Verbosity level |
+>| l               |                 |                 | for output      |
+>|                 |                 |                 | file. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| filter_margin_f | OT_REAL         | 0.000           | Factor          |
+>| act             |                 |                 | determining     |
+>|                 |                 |                 | width of margin |
+>|                 |                 |                 | for obj-constr- |
+>|                 |                 |                 | filter adaptive |
+>|                 |                 |                 | globalization   |
+>|                 |                 |                 | strategy. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| filter_max_marg | OT_REAL         | 1               | Maximum width   |
+>| in              |                 |                 | of margin in    |
+>|                 |                 |                 | obj-constr-     |
+>|                 |                 |                 | filter adaptive |
+>|                 |                 |                 | globalization   |
+>|                 |                 |                 | strategy. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| filter_reset_tr | OT_INTEGER      | 5               | Number of       |
+>| igger           |                 |                 | iterations that |
+>|                 |                 |                 | trigger the     |
+>|                 |                 |                 | filter reset.   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| findiff_perturb | OT_REAL         | 0.000           | Size of the     |
+>| ation           |                 |                 | finite          |
+>|                 |                 |                 | difference      |
+>|                 |                 |                 | perturbation    |
+>|                 |                 |                 | for derivative  |
+>|                 |                 |                 | approximation.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| first_hessian_p | OT_REAL         | 0.000           | Size of first   |
+>| erturbation     |                 |                 | x-s             |
+>|                 |                 |                 | perturbation    |
+>|                 |                 |                 | tried. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fixed_mu_oracle | OT_STRING       | average_compl   | Oracle for the  |
+>|                 |                 |                 | barrier         |
+>|                 |                 |                 | parameter when  |
+>|                 |                 |                 | switching to    |
+>|                 |                 |                 | fixed mode.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| fixed_variable_ | OT_STRING       | make_parameter  | Determines how  |
+>| treatment       |                 |                 | fixed variables |
+>|                 |                 |                 | should be       |
+>|                 |                 |                 | handled. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| gamma_hat       | OT_REAL         | 0.040           | LIFENG WRITES   |
+>|                 |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| gamma_phi       | OT_REAL         | 0.000           | Relaxation      |
+>|                 |                 |                 | factor in the   |
+>|                 |                 |                 | filter margin   |
+>|                 |                 |                 | for the barrier |
+>|                 |                 |                 | function. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| gamma_theta     | OT_REAL         | 0.000           | Relaxation      |
+>|                 |                 |                 | factor in the   |
+>|                 |                 |                 | filter margin   |
+>|                 |                 |                 | for the         |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | violation. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| gamma_tilde     | OT_REAL         | 4               | LIFENG WRITES   |
+>|                 |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| hessian_approxi | OT_STRING       | exact           | Indicates what  |
+>| mation          |                 |                 | Hessian         |
+>|                 |                 |                 | information is  |
+>|                 |                 |                 | to be used.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| hessian_approxi | OT_STRING       | nonlinear-      | Indicates in    |
+>| mation_space    |                 | variables       | which subspace  |
+>|                 |                 |                 | the Hessian     |
+>|                 |                 |                 | information is  |
+>|                 |                 |                 | to be           |
+>|                 |                 |                 | approximated.   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| hessian_constan | OT_STRING       | no              | Indicates       |
+>| t               |                 |                 | whether the     |
+>|                 |                 |                 | problem is a    |
+>|                 |                 |                 | quadratic       |
+>|                 |                 |                 | problem (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| honor_original_ | OT_STRING       | yes             | Indicates       |
+>| bounds          |                 |                 | whether final   |
+>|                 |                 |                 | points should   |
+>|                 |                 |                 | be projected    |
+>|                 |                 |                 | into original   |
+>|                 |                 |                 | bounds. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| inf_pr_output   | OT_STRING       | original        | Determines what |
+>|                 |                 |                 | value is        |
+>|                 |                 |                 | printed in the  |
+>|                 |                 |                 | "inf_pr" output |
+>|                 |                 |                 | column. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| jac_c_constant  | OT_STRING       | no              | Indicates       |
+>|                 |                 |                 | whether all     |
+>|                 |                 |                 | equality        |
+>|                 |                 |                 | constraints are |
+>|                 |                 |                 | linear (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| jac_d_constant  | OT_STRING       | no              | Indicates       |
+>|                 |                 |                 | whether all     |
+>|                 |                 |                 | inequality      |
+>|                 |                 |                 | constraints are |
+>|                 |                 |                 | linear (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| jacobian_approx | OT_STRING       | exact           | Specifies       |
+>| imation         |                 |                 | technique to    |
+>|                 |                 |                 | compute         |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | Jacobian (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| jacobian_regula | OT_REAL         | 0.250           | Exponent for mu |
+>| rization_expone |                 |                 | in the          |
+>| nt              |                 |                 | regularization  |
+>|                 |                 |                 | for rank-       |
+>|                 |                 |                 | deficient       |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | Jacobians. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| jacobian_regula | OT_REAL         | 0.000           | Size of the     |
+>| rization_value  |                 |                 | regularization  |
+>|                 |                 |                 | for rank-       |
+>|                 |                 |                 | deficient       |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | Jacobians. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| kappa_d         | OT_REAL         | 0.000           | Weight for      |
+>|                 |                 |                 | linear damping  |
+>|                 |                 |                 | term (to handle |
+>|                 |                 |                 | one-sided       |
+>|                 |                 |                 | bounds). (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| kappa_sigma     | OT_REAL         | 1.000e+10       | Factor limiting |
+>|                 |                 |                 | the deviation   |
+>|                 |                 |                 | of dual         |
+>|                 |                 |                 | variables from  |
+>|                 |                 |                 | primal          |
+>|                 |                 |                 | estimates. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| kappa_soc       | OT_REAL         | 0.990           | Factor in the   |
+>|                 |                 |                 | sufficient      |
+>|                 |                 |                 | reduction rule  |
+>|                 |                 |                 | for second      |
+>|                 |                 |                 | order           |
+>|                 |                 |                 | correction.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| kappa_x_dis     | OT_REAL         | 100             | a parameter     |
+>|                 |                 |                 | used to check   |
+>|                 |                 |                 | if the fast     |
+>|                 |                 |                 | direction can   |
+>|                 |                 |                 | be used asthe   |
+>|                 |                 |                 | line search     |
+>|                 |                 |                 | direction (for  |
+>|                 |                 |                 | Chen-Goldfarb   |
+>|                 |                 |                 | line search).   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| kappa_y_dis     | OT_REAL         | 10000           | a parameter     |
+>|                 |                 |                 | used to check   |
+>|                 |                 |                 | if the fast     |
+>|                 |                 |                 | direction can   |
+>|                 |                 |                 | be used asthe   |
+>|                 |                 |                 | line search     |
+>|                 |                 |                 | direction (for  |
+>|                 |                 |                 | Chen-Goldfarb   |
+>|                 |                 |                 | line search).   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| least_square_in | OT_STRING       | no              | Least square    |
+>| it_duals        |                 |                 | initialization  |
+>|                 |                 |                 | of all dual     |
+>|                 |                 |                 | variables (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| least_square_in | OT_STRING       | no              | Least square    |
+>| it_primal       |                 |                 | initialization  |
+>|                 |                 |                 | of the primal   |
+>|                 |                 |                 | variables (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| limited_memory_ | OT_STRING       | sherman-        | Strategy for    |
+>| aug_solver      |                 | morrison        | solving the     |
+>|                 |                 |                 | augmented       |
+>|                 |                 |                 | system for low- |
+>|                 |                 |                 | rank Hessian.   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| limited_memory_ | OT_REAL         | 1               | Value for B0 in |
+>| init_val        |                 |                 | low-rank        |
+>|                 |                 |                 | update. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| limited_memory_ | OT_REAL         | 100000000       | Upper bound on  |
+>| init_val_max    |                 |                 | value for B0 in |
+>|                 |                 |                 | low-rank        |
+>|                 |                 |                 | update. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| limited_memory_ | OT_REAL         | 0.000           | Lower bound on  |
+>| init_val_min    |                 |                 | value for B0 in |
+>|                 |                 |                 | low-rank        |
+>|                 |                 |                 | update. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| limited_memory_ | OT_STRING       | scalar1         | Initialization  |
+>| initialization  |                 |                 | strategy for    |
+>|                 |                 |                 | the limited     |
+>|                 |                 |                 | memory quasi-   |
+>|                 |                 |                 | Newton          |
+>|                 |                 |                 | approximation.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| limited_memory_ | OT_INTEGER      | 6               | Maximum size of |
+>| max_history     |                 |                 | the history for |
+>|                 |                 |                 | the limited     |
+>|                 |                 |                 | quasi-Newton    |
+>|                 |                 |                 | Hessian         |
+>|                 |                 |                 | approximation.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| limited_memory_ | OT_INTEGER      | 2               | Threshold for   |
+>| max_skipping    |                 |                 | successive      |
+>|                 |                 |                 | iterations      |
+>|                 |                 |                 | where update is |
+>|                 |                 |                 | skipped. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| limited_memory_ | OT_STRING       | no              | Determines if   |
+>| special_for_res |                 |                 | the quasi-      |
+>| to              |                 |                 | Newton updates  |
+>|                 |                 |                 | should be       |
+>|                 |                 |                 | special during  |
+>|                 |                 |                 | the restoration |
+>|                 |                 |                 | phase. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| limited_memory_ | OT_STRING       | bfgs            | Quasi-Newton    |
+>| update_type     |                 |                 | update formula  |
+>|                 |                 |                 | for the limited |
+>|                 |                 |                 | memory          |
+>|                 |                 |                 | approximation.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| line_search_met | OT_STRING       | filter          | Globalization   |
+>| hod             |                 |                 | method used in  |
+>|                 |                 |                 | backtracking    |
+>|                 |                 |                 | line search     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_scaling_ | OT_STRING       | yes             | Flag indicating |
+>| on_demand       |                 |                 | that linear     |
+>|                 |                 |                 | scaling is only |
+>|                 |                 |                 | done if it      |
+>|                 |                 |                 | seems required. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_solver   | OT_STRING       | mumps           | Linear solver   |
+>|                 |                 |                 | used for step   |
+>|                 |                 |                 | computations.   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| linear_system_s | OT_STRING       | none            | Method for      |
+>| caling          |                 |                 | scaling the     |
+>|                 |                 |                 | linear system.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma27_ignore_sin | OT_STRING       | no              | Enables MA27's  |
+>| gularity        |                 |                 | ability to      |
+>|                 |                 |                 | solve a linear  |
+>|                 |                 |                 | system even if  |
+>|                 |                 |                 | the matrix is   |
+>|                 |                 |                 | singular. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma27_la_init_fa | OT_REAL         | 5               | Real workspace  |
+>| ctor            |                 |                 | memory for      |
+>|                 |                 |                 | MA27. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma27_liw_init_f | OT_REAL         | 5               | Integer         |
+>| actor           |                 |                 | workspace       |
+>|                 |                 |                 | memory for      |
+>|                 |                 |                 | MA27. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma27_meminc_fac | OT_REAL         | 2               | Increment       |
+>| tor             |                 |                 | factor for      |
+>|                 |                 |                 | workspace size  |
+>|                 |                 |                 | for MA27. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma27_pivtol     | OT_REAL         | 0.000           | Pivot tolerance |
+>|                 |                 |                 | for the linear  |
+>|                 |                 |                 | solver MA27.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma27_pivtolmax  | OT_REAL         | 0.000           | Maximum pivot   |
+>|                 |                 |                 | tolerance for   |
+>|                 |                 |                 | the linear      |
+>|                 |                 |                 | solver MA27.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma27_skip_inert | OT_STRING       | no              | Always pretend  |
+>| ia_check        |                 |                 | inertia is      |
+>|                 |                 |                 | correct. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma28_pivtol     | OT_REAL         | 0.010           | Pivot tolerance |
+>|                 |                 |                 | for linear      |
+>|                 |                 |                 | solver MA28.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma57_automatic_ | OT_STRING       | no              | Controls MA57   |
+>| scaling         |                 |                 | automatic       |
+>|                 |                 |                 | scaling (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma57_block_size | OT_INTEGER      | 16              | Controls block  |
+>|                 |                 |                 | size used by    |
+>|                 |                 |                 | Level 3 BLAS in |
+>|                 |                 |                 | MA57BD (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma57_node_amalg | OT_INTEGER      | 16              | Node            |
+>| amation         |                 |                 | amalgamation    |
+>|                 |                 |                 | parameter (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma57_pivot_orde | OT_INTEGER      | 5               | Controls pivot  |
+>| r               |                 |                 | order in MA57   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma57_pivtol     | OT_REAL         | 0.000           | Pivot tolerance |
+>|                 |                 |                 | for the linear  |
+>|                 |                 |                 | solver MA57.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma57_pivtolmax  | OT_REAL         | 0.000           | Maximum pivot   |
+>|                 |                 |                 | tolerance for   |
+>|                 |                 |                 | the linear      |
+>|                 |                 |                 | solver MA57.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma57_pre_alloc  | OT_REAL         | 1.050           | Safety factor   |
+>|                 |                 |                 | for work space  |
+>|                 |                 |                 | memory          |
+>|                 |                 |                 | allocation for  |
+>|                 |                 |                 | the linear      |
+>|                 |                 |                 | solver MA57.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma57_small_pivo | OT_INTEGER      | 0               | If set to 1,    |
+>| t_flag          |                 |                 | then when small |
+>|                 |                 |                 | entries defined |
+>|                 |                 |                 | by CNTL(2) are  |
+>|                 |                 |                 | detected they   |
+>|                 |                 |                 | are removed and |
+>|                 |                 |                 | the             |
+>|                 |                 |                 | corresponding   |
+>|                 |                 |                 | pivots placed   |
+>|                 |                 |                 | at the end of   |
+>|                 |                 |                 | the             |
+>|                 |                 |                 | factorization.  |
+>|                 |                 |                 | This can be     |
+>|                 |                 |                 | particularly    |
+>|                 |                 |                 | efficient if    |
+>|                 |                 |                 | the matrix is   |
+>|                 |                 |                 | highly rank     |
+>|                 |                 |                 | deficient. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma77_buffer_lpa | OT_INTEGER      | 4096            | Number of       |
+>| ge              |                 |                 | scalars per     |
+>|                 |                 |                 | MA77 buffer     |
+>|                 |                 |                 | page (see IPOPT |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma77_buffer_npa | OT_INTEGER      | 1600            | Number of pages |
+>| ge              |                 |                 | that make up    |
+>|                 |                 |                 | MA77 buffer     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma77_file_size  | OT_INTEGER      | 2097152         | Target size of  |
+>|                 |                 |                 | each temporary  |
+>|                 |                 |                 | file for MA77,  |
+>|                 |                 |                 | scalars per     |
+>|                 |                 |                 | type (see IPOPT |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma77_maxstore   | OT_INTEGER      | 0               | Maximum storage |
+>|                 |                 |                 | size for MA77   |
+>|                 |                 |                 | in-core mode    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma77_nemin      | OT_INTEGER      | 8               | Node            |
+>|                 |                 |                 | Amalgamation    |
+>|                 |                 |                 | parameter (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma77_order      | OT_STRING       | amd             | Controls type   |
+>|                 |                 |                 | of ordering     |
+>|                 |                 |                 | used by         |
+>|                 |                 |                 | HSL_MA77 (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma77_print_leve | OT_INTEGER      | -1              | Debug printing  |
+>| l               |                 |                 | level for the   |
+>|                 |                 |                 | linear solver   |
+>|                 |                 |                 | MA77 (see IPOPT |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma77_small      | OT_REAL         | 0.000           | Zero Pivot      |
+>|                 |                 |                 | Threshold (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma77_static     | OT_REAL         | 0               | Static Pivoting |
+>|                 |                 |                 | Threshold (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma77_u          | OT_REAL         | 0.000           | Pivoting        |
+>|                 |                 |                 | Threshold (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma77_umax       | OT_REAL         | 0.000           | Maximum         |
+>|                 |                 |                 | Pivoting        |
+>|                 |                 |                 | Threshold (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma86_nemin      | OT_INTEGER      | 32              | Node            |
+>|                 |                 |                 | Amalgamation    |
+>|                 |                 |                 | parameter (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma86_order      | OT_STRING       | amd             | Controls type   |
+>|                 |                 |                 | of ordering     |
+>|                 |                 |                 | used by         |
+>|                 |                 |                 | HSL_MA86 (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma86_print_leve | OT_INTEGER      | -1              | Debug printing  |
+>| l               |                 |                 | level for the   |
+>|                 |                 |                 | linear solver   |
+>|                 |                 |                 | MA86 (see IPOPT |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma86_scaling    | OT_STRING       | mc64            | Controls        |
+>|                 |                 |                 | scaling of      |
+>|                 |                 |                 | matrix (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma86_small      | OT_REAL         | 0.000           | Zero Pivot      |
+>|                 |                 |                 | Threshold (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma86_static     | OT_REAL         | 0               | Static Pivoting |
+>|                 |                 |                 | Threshold (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma86_u          | OT_REAL         | 0.000           | Pivoting        |
+>|                 |                 |                 | Threshold (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma86_umax       | OT_REAL         | 0.000           | Maximum         |
+>|                 |                 |                 | Pivoting        |
+>|                 |                 |                 | Threshold (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_nemin      | OT_INTEGER      | 8               | Node            |
+>|                 |                 |                 | Amalgamation    |
+>|                 |                 |                 | parameter (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_order      | OT_STRING       | auto            | Controls type   |
+>|                 |                 |                 | of ordering     |
+>|                 |                 |                 | used by         |
+>|                 |                 |                 | HSL_MA97 (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_print_leve | OT_INTEGER      | 0               | Debug printing  |
+>| l               |                 |                 | level for the   |
+>|                 |                 |                 | linear solver   |
+>|                 |                 |                 | MA97 (see IPOPT |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_scaling    | OT_STRING       | dynamic         | Specifies       |
+>|                 |                 |                 | strategy for    |
+>|                 |                 |                 | scaling in      |
+>|                 |                 |                 | HSL_MA97 linear |
+>|                 |                 |                 | solver (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_scaling1   | OT_STRING       | mc64            | First scaling.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_scaling2   | OT_STRING       | mc64            | Second scaling. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_scaling3   | OT_STRING       | mc64            | Third scaling.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_small      | OT_REAL         | 0.000           | Zero Pivot      |
+>|                 |                 |                 | Threshold (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_solve_blas | OT_STRING       | no              | Controls if     |
+>| 3               |                 |                 | blas2 or blas3  |
+>|                 |                 |                 | routines are    |
+>|                 |                 |                 | used for solve  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_switch1    | OT_STRING       | od_hd_reuse     | First switch,   |
+>|                 |                 |                 | determine when  |
+>|                 |                 |                 | ma97_scaling1   |
+>|                 |                 |                 | is enabled.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_switch2    | OT_STRING       | never           | Second switch,  |
+>|                 |                 |                 | determine when  |
+>|                 |                 |                 | ma97_scaling2   |
+>|                 |                 |                 | is enabled.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_switch3    | OT_STRING       | never           | Third switch,   |
+>|                 |                 |                 | determine when  |
+>|                 |                 |                 | ma97_scaling3   |
+>|                 |                 |                 | is enabled.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_u          | OT_REAL         | 0.000           | Pivoting        |
+>|                 |                 |                 | Threshold (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ma97_umax       | OT_REAL         | 0.000           | Maximum         |
+>|                 |                 |                 | Pivoting        |
+>|                 |                 |                 | Threshold (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| magic_steps     | OT_STRING       | no              | Enables magic   |
+>|                 |                 |                 | steps. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_cpu_time    | OT_REAL         | 1000000         | Maximum number  |
+>|                 |                 |                 | of CPU seconds. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_filter_rese | OT_INTEGER      | 5               | Maximal allowed |
+>| ts              |                 |                 | number of       |
+>|                 |                 |                 | filter resets   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_hessian_per | OT_REAL         | 1.000e+20       | Maximum value   |
+>| turbation       |                 |                 | of              |
+>|                 |                 |                 | regularization  |
+>|                 |                 |                 | parameter for   |
+>|                 |                 |                 | handling        |
+>|                 |                 |                 | negative        |
+>|                 |                 |                 | curvature. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_iter        | OT_INTEGER      | 3000            | Maximum number  |
+>|                 |                 |                 | of iterations.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_refinement_ | OT_INTEGER      | 10              | Maximum number  |
+>| steps           |                 |                 | of iterative    |
+>|                 |                 |                 | refinement      |
+>|                 |                 |                 | steps per       |
+>|                 |                 |                 | linear system   |
+>|                 |                 |                 | solve. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_resto_iter  | OT_INTEGER      | 3000000         | Maximum number  |
+>|                 |                 |                 | of successive   |
+>|                 |                 |                 | iterations in   |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | phase. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_soc         | OT_INTEGER      | 4               | Maximum number  |
+>|                 |                 |                 | of second order |
+>|                 |                 |                 | correction      |
+>|                 |                 |                 | trial steps at  |
+>|                 |                 |                 | each iteration. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_soft_resto_ | OT_INTEGER      | 10              | Maximum number  |
+>| iters           |                 |                 | of iterations   |
+>|                 |                 |                 | performed       |
+>|                 |                 |                 | successively in |
+>|                 |                 |                 | soft            |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | phase. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mehrotra_algori | OT_STRING       | no              | Indicates if we |
+>| thm             |                 |                 | want to do      |
+>|                 |                 |                 | Mehrotra's      |
+>|                 |                 |                 | algorithm. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| min_alpha_prima | OT_REAL         | 0.000           | LIFENG WRITES   |
+>| l               |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| min_hessian_per | OT_REAL         | 0.000           | Smallest        |
+>| turbation       |                 |                 | perturbation of |
+>|                 |                 |                 | the Hessian     |
+>|                 |                 |                 | block. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| min_refinement_ | OT_INTEGER      | 1               | Minimum number  |
+>| steps           |                 |                 | of iterative    |
+>|                 |                 |                 | refinement      |
+>|                 |                 |                 | steps per       |
+>|                 |                 |                 | linear system   |
+>|                 |                 |                 | solve. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mu_allow_fast_m | OT_STRING       | yes             | Allow skipping  |
+>| onotone_decreas |                 |                 | of barrier      |
+>| e               |                 |                 | problem if      |
+>|                 |                 |                 | barrier test is |
+>|                 |                 |                 | already met.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mu_init         | OT_REAL         | 0.100           | Initial value   |
+>|                 |                 |                 | for the barrier |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mu_linear_decre | OT_REAL         | 0.200           | Determines      |
+>| ase_factor      |                 |                 | linear decrease |
+>|                 |                 |                 | rate of barrier |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mu_max          | OT_REAL         | 100000          | Maximum value   |
+>|                 |                 |                 | for barrier     |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mu_max_fact     | OT_REAL         | 1000            | Factor for      |
+>|                 |                 |                 | initialization  |
+>|                 |                 |                 | of maximum      |
+>|                 |                 |                 | value for       |
+>|                 |                 |                 | barrier         |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mu_min          | OT_REAL         | 0.000           | Minimum value   |
+>|                 |                 |                 | for barrier     |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mu_oracle       | OT_STRING       | quality-        | Oracle for a    |
+>|                 |                 | function        | new barrier     |
+>|                 |                 |                 | parameter in    |
+>|                 |                 |                 | the adaptive    |
+>|                 |                 |                 | strategy. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mu_strategy     | OT_STRING       | monotone        | Update strategy |
+>|                 |                 |                 | for barrier     |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mu_superlinear_ | OT_REAL         | 1.500           | Determines      |
+>| decrease_power  |                 |                 | superlinear     |
+>|                 |                 |                 | decrease rate   |
+>|                 |                 |                 | of barrier      |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mu_target       | OT_REAL         | 0               | Desired value   |
+>|                 |                 |                 | of complementar |
+>|                 |                 |                 | ity. (see IPOPT |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mult_diverg_fea | OT_REAL         | 0.000           | tolerance for   |
+>| sibility_tol    |                 |                 | deciding if the |
+>|                 |                 |                 | multipliers are |
+>|                 |                 |                 | diverging (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mult_diverg_y_t | OT_REAL         | 100000000       | tolerance for   |
+>| ol              |                 |                 | deciding if the |
+>|                 |                 |                 | multipliers are |
+>|                 |                 |                 | diverging (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mumps_dep_tol   | OT_REAL         | 0               | Pivot threshold |
+>|                 |                 |                 | for detection   |
+>|                 |                 |                 | of linearly     |
+>|                 |                 |                 | dependent       |
+>|                 |                 |                 | constraints in  |
+>|                 |                 |                 | MUMPS. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mumps_mem_perce | OT_INTEGER      | 1000            | Percentage      |
+>| nt              |                 |                 | increase in the |
+>|                 |                 |                 | estimated       |
+>|                 |                 |                 | working space   |
+>|                 |                 |                 | for MUMPS. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mumps_permuting | OT_INTEGER      | 7               | Controls        |
+>| _scaling        |                 |                 | permuting and   |
+>|                 |                 |                 | scaling in      |
+>|                 |                 |                 | MUMPS (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mumps_pivot_ord | OT_INTEGER      | 7               | Controls pivot  |
+>| er              |                 |                 | order in MUMPS  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mumps_pivtol    | OT_REAL         | 0.000           | Pivot tolerance |
+>|                 |                 |                 | for the linear  |
+>|                 |                 |                 | solver MUMPS.   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mumps_pivtolmax | OT_REAL         | 0.100           | Maximum pivot   |
+>|                 |                 |                 | tolerance for   |
+>|                 |                 |                 | the linear      |
+>|                 |                 |                 | solver MUMPS.   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mumps_scaling   | OT_INTEGER      | 77              | Controls        |
+>|                 |                 |                 | scaling in      |
+>|                 |                 |                 | MUMPS (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| neg_curv_test_t | OT_REAL         | 0               | Tolerance for   |
+>| ol              |                 |                 | heuristic to    |
+>|                 |                 |                 | ignore wrong    |
+>|                 |                 |                 | inertia. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| never_use_fact_ | OT_STRING       | no              | Toggle to       |
+>| cgpen_direction |                 |                 | switch off the  |
+>|                 |                 |                 | fast Chen-      |
+>|                 |                 |                 | Goldfarb        |
+>|                 |                 |                 | direction (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| never_use_piece | OT_STRING       | no              | Toggle to       |
+>| wise_penalty_ls |                 |                 | switch off the  |
+>|                 |                 |                 | piecewise       |
+>|                 |                 |                 | penalty method  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nlp_lower_bound | OT_REAL         | -1.000e+19      | any bound less  |
+>| _inf            |                 |                 | or equal this   |
+>|                 |                 |                 | value will be   |
+>|                 |                 |                 | considered -inf |
+>|                 |                 |                 | (i.e. not lower |
+>|                 |                 |                 | bounded). (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nlp_scaling_con | OT_REAL         | 0               | Target value    |
+>| str_target_grad |                 |                 | for constraint  |
+>| ient            |                 |                 | function        |
+>|                 |                 |                 | gradient size.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nlp_scaling_max | OT_REAL         | 100             | Maximum         |
+>| _gradient       |                 |                 | gradient after  |
+>|                 |                 |                 | NLP scaling.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nlp_scaling_met | OT_STRING       | gradient-based  | Select the      |
+>| hod             |                 |                 | technique used  |
+>|                 |                 |                 | for scaling the |
+>|                 |                 |                 | NLP. (see IPOPT |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nlp_scaling_min | OT_REAL         | 0.000           | Minimum value   |
+>| _value          |                 |                 | of gradient-    |
+>|                 |                 |                 | based scaling   |
+>|                 |                 |                 | values. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nlp_scaling_obj | OT_REAL         | 0               | Target value    |
+>| _target_gradien |                 |                 | for objective   |
+>| t               |                 |                 | function        |
+>|                 |                 |                 | gradient size.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nlp_upper_bound | OT_REAL         | 1.000e+19       | any bound       |
+>| _inf            |                 |                 | greater or this |
+>|                 |                 |                 | value will be   |
+>|                 |                 |                 | considered +inf |
+>|                 |                 |                 | (i.e. not upper |
+>|                 |                 |                 | bounded). (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nu_inc          | OT_REAL         | 0.000           | Increment of    |
+>|                 |                 |                 | the penalty     |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nu_init         | OT_REAL         | 0.000           | Initial value   |
+>|                 |                 |                 | of the penalty  |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| num_linear_vari | OT_INTEGER      | 0               | Number of       |
+>| ables           |                 |                 | linear          |
+>|                 |                 |                 | variables (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| obj_max_inc     | OT_REAL         | 5               | Determines the  |
+>|                 |                 |                 | upper bound on  |
+>|                 |                 |                 | the acceptable  |
+>|                 |                 |                 | increase of     |
+>|                 |                 |                 | barrier         |
+>|                 |                 |                 | objective       |
+>|                 |                 |                 | function. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| obj_scaling_fac | OT_REAL         | 1               | Scaling factor  |
+>| tor             |                 |                 | for the         |
+>|                 |                 |                 | objective       |
+>|                 |                 |                 | function. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| option_file_nam | OT_STRING       | ipopt.opt       | File name of    |
+>| e               |                 |                 | options file.   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| output_file     | OT_STRING       |                 | File name of    |
+>|                 |                 |                 | desired output  |
+>|                 |                 |                 | file (leave     |
+>|                 |                 |                 | unset for no    |
+>|                 |                 |                 | file output).   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_iter_co | OT_INTEGER      | 5000            | Maximum Size of |
+>| arse_size       |                 |                 | Coarse Grid     |
+>|                 |                 |                 | Matrix (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_iter_dr | OT_REAL         | 0.500           | dropping value  |
+>| opping_factor   |                 |                 | for incomplete  |
+>|                 |                 |                 | factor (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_iter_dr | OT_REAL         | 0.100           | dropping value  |
+>| opping_schur    |                 |                 | for sparsify    |
+>|                 |                 |                 | schur           |
+>|                 |                 |                 | complement      |
+>|                 |                 |                 | factor (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_iter_in | OT_REAL         | 5000000         | (see IPOPT      |
+>| verse_norm_fact |                 |                 | documentation)  |
+>| or              |                 |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_iter_ma | OT_INTEGER      | 10              | Maximum Size of |
+>| x_levels        |                 |                 | Grid Levels     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_iter_ma | OT_INTEGER      | 10000000        | max fill for    |
+>| x_row_fill      |                 |                 | each row (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_iter_re | OT_REAL         | 0.000           | Relative        |
+>| lative_tol      |                 |                 | Residual        |
+>|                 |                 |                 | Convergence     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_iterati | OT_STRING       | no              | Switch on       |
+>| ve              |                 |                 | iterative       |
+>|                 |                 |                 | solver in       |
+>|                 |                 |                 | Pardiso library |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_matchin | OT_STRING       | complete+2x2    | Matching        |
+>| g_strategy      |                 |                 | strategy to be  |
+>|                 |                 |                 | used by Pardiso |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_max_dro | OT_INTEGER      | 4               | Maximal number  |
+>| ptol_correction |                 |                 | of decreases of |
+>| s               |                 |                 | drop tolerance  |
+>|                 |                 |                 | during one      |
+>|                 |                 |                 | solve. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_max_ite | OT_INTEGER      | 500             | Maximum number  |
+>| r               |                 |                 | of Krylov-      |
+>|                 |                 |                 | Subspace        |
+>|                 |                 |                 | Iteration (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_msglvl  | OT_INTEGER      | 0               | Pardiso message |
+>|                 |                 |                 | level (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_out_of_ | OT_INTEGER      | 0               | Enables out-of- |
+>| core_power      |                 |                 | core variant of |
+>|                 |                 |                 | Pardiso (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_redo_sy | OT_STRING       | no              | Toggle for      |
+>| mbolic_fact_onl |                 |                 | handling case   |
+>| y_if_inertia_wr |                 |                 | when elements   |
+>| ong             |                 |                 | were perturbed  |
+>|                 |                 |                 | by Pardiso.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_repeate | OT_STRING       | no              | Interpretation  |
+>| d_perturbation_ |                 |                 | of perturbed    |
+>| means_singular  |                 |                 | elements. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pardiso_skip_in | OT_STRING       | no              | Always pretend  |
+>| ertia_check     |                 |                 | inertia is      |
+>|                 |                 |                 | correct. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pass_nonlinear_ | OT_BOOLEAN      | False           | n/a             |
+>| variables       |                 |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pen_des_fact    | OT_REAL         | 0.200           | a parameter     |
+>|                 |                 |                 | used in penalty |
+>|                 |                 |                 | parameter       |
+>|                 |                 |                 | computation     |
+>|                 |                 |                 | (for Chen-      |
+>|                 |                 |                 | Goldfarb line   |
+>|                 |                 |                 | search). (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pen_init_fac    | OT_REAL         | 50              | a parameter     |
+>|                 |                 |                 | used to choose  |
+>|                 |                 |                 | initial penalty |
+>|                 |                 |                 | parameterswhen  |
+>|                 |                 |                 | the regularized |
+>|                 |                 |                 | Newton method   |
+>|                 |                 |                 | is used. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| pen_theta_max_f | OT_REAL         | 10000           | Determines      |
+>| act             |                 |                 | upper bound for |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | violation in    |
+>|                 |                 |                 | the filter.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| penalty_init_ma | OT_REAL         | 100000          | Maximal value   |
+>| x               |                 |                 | for the intial  |
+>|                 |                 |                 | penalty         |
+>|                 |                 |                 | parameter (for  |
+>|                 |                 |                 | Chen-Goldfarb   |
+>|                 |                 |                 | line search).   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| penalty_init_mi | OT_REAL         | 1               | Minimal value   |
+>| n               |                 |                 | for the intial  |
+>|                 |                 |                 | penalty         |
+>|                 |                 |                 | parameter for   |
+>|                 |                 |                 | line search(for |
+>|                 |                 |                 | Chen-Goldfarb   |
+>|                 |                 |                 | line search).   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| penalty_max     | OT_REAL         | 1.000e+30       | Maximal value   |
+>|                 |                 |                 | for the penalty |
+>|                 |                 |                 | parameter (for  |
+>|                 |                 |                 | Chen-Goldfarb   |
+>|                 |                 |                 | line search).   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| penalty_update_ | OT_REAL         | 10              | LIFENG WRITES   |
+>| compl_tol       |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| penalty_update_ | OT_REAL         | 0.000           | Threshold for   |
+>| infeasibility_t |                 |                 | infeasibility   |
+>| ol              |                 |                 | in penalty      |
+>|                 |                 |                 | parameter       |
+>|                 |                 |                 | update test.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| perturb_always_ | OT_STRING       | no              | Active          |
+>| cd              |                 |                 | permanent       |
+>|                 |                 |                 | perturbation of |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | linearization.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| perturb_dec_fac | OT_REAL         | 0.333           | Decrease factor |
+>| t               |                 |                 | for x-s         |
+>|                 |                 |                 | perturbation.   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| perturb_inc_fac | OT_REAL         | 8               | Increase factor |
+>| t               |                 |                 | for x-s         |
+>|                 |                 |                 | perturbation.   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| perturb_inc_fac | OT_REAL         | 100             | Increase factor |
+>| t_first         |                 |                 | for x-s         |
+>|                 |                 |                 | perturbation    |
+>|                 |                 |                 | for very first  |
+>|                 |                 |                 | perturbation.   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| piecewisepenalt | OT_REAL         | 0.000           | LIFENG WRITES   |
+>| y_gamma_infeasi |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| piecewisepenalt | OT_REAL         | 0.000           | LIFENG WRITES   |
+>| y_gamma_obj     |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| point_perturbat | OT_REAL         | 10              | Maximal         |
+>| ion_radius      |                 |                 | perturbation of |
+>|                 |                 |                 | an evaluation   |
+>|                 |                 |                 | point. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_frequency | OT_INTEGER      | 1               | Determines at   |
+>| _iter           |                 |                 | which iteration |
+>|                 |                 |                 | frequency the   |
+>|                 |                 |                 | summarizing     |
+>|                 |                 |                 | iteration       |
+>|                 |                 |                 | output line     |
+>|                 |                 |                 | should be       |
+>|                 |                 |                 | printed. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_frequency | OT_REAL         | 0               | Determines at   |
+>| _time           |                 |                 | which time      |
+>|                 |                 |                 | frequency the   |
+>|                 |                 |                 | summarizing     |
+>|                 |                 |                 | iteration       |
+>|                 |                 |                 | output line     |
+>|                 |                 |                 | should be       |
+>|                 |                 |                 | printed. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_info_stri | OT_STRING       | no              | Enables         |
+>| ng              |                 |                 | printing of     |
+>|                 |                 |                 | additional info |
+>|                 |                 |                 | string at end   |
+>|                 |                 |                 | of iteration    |
+>|                 |                 |                 | output. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_level     | OT_INTEGER      | 5               | Output          |
+>|                 |                 |                 | verbosity       |
+>|                 |                 |                 | level. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_options_d | OT_STRING       | no              | Switch to print |
+>| ocumentation    |                 |                 | all algorithmic |
+>|                 |                 |                 | options. (see   |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_options_l | OT_STRING       | no              | Undocumented    |
+>| atex_mode       |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_time      | OT_BOOLEAN      | True            | print           |
+>|                 |                 |                 | information     |
+>|                 |                 |                 | about execution |
+>|                 |                 |                 | time            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_timing_st | OT_STRING       | no              | Switch to print |
+>| atistics        |                 |                 | timing          |
+>|                 |                 |                 | statistics.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_user_opti | OT_STRING       | no              | Print all       |
+>| ons             |                 |                 | options set by  |
+>|                 |                 |                 | the user. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| quality_functio | OT_STRING       | none            | The balancing   |
+>| n_balancing_ter |                 |                 | term included   |
+>| m               |                 |                 | in the quality  |
+>|                 |                 |                 | function for    |
+>|                 |                 |                 | centrality.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| quality_functio | OT_STRING       | none            | The penalty     |
+>| n_centrality    |                 |                 | term for        |
+>|                 |                 |                 | centrality that |
+>|                 |                 |                 | is included in  |
+>|                 |                 |                 | quality         |
+>|                 |                 |                 | function. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| quality_functio | OT_INTEGER      | 8               | Maximum number  |
+>| n_max_section_s |                 |                 | of search steps |
+>| teps            |                 |                 | during direct   |
+>|                 |                 |                 | search          |
+>|                 |                 |                 | procedure       |
+>|                 |                 |                 | determining the |
+>|                 |                 |                 | optimal         |
+>|                 |                 |                 | centering       |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| quality_functio | OT_STRING       | 2-norm-squared  | Norm used for   |
+>| n_norm_type     |                 |                 | components of   |
+>|                 |                 |                 | the quality     |
+>|                 |                 |                 | function. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| quality_functio | OT_REAL         | 0               | Tolerance for   |
+>| n_section_qf_to |                 |                 | the golden      |
+>| l               |                 |                 | section search  |
+>|                 |                 |                 | procedure       |
+>|                 |                 |                 | determining the |
+>|                 |                 |                 | optimal         |
+>|                 |                 |                 | centering       |
+>|                 |                 |                 | parameter (in   |
+>|                 |                 |                 | the function    |
+>|                 |                 |                 | value space).   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| quality_functio | OT_REAL         | 0.010           | Tolerance for   |
+>| n_section_sigma |                 |                 | the section     |
+>| _tol            |                 |                 | search          |
+>|                 |                 |                 | procedure       |
+>|                 |                 |                 | determining the |
+>|                 |                 |                 | optimal         |
+>|                 |                 |                 | centering       |
+>|                 |                 |                 | parameter (in   |
+>|                 |                 |                 | sigma space).   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| recalc_y        | OT_STRING       | no              | Tells the       |
+>|                 |                 |                 | algorithm to    |
+>|                 |                 |                 | recalculate the |
+>|                 |                 |                 | equality and    |
+>|                 |                 |                 | inequality      |
+>|                 |                 |                 | multipliers as  |
+>|                 |                 |                 | least square    |
+>|                 |                 |                 | estimates. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| recalc_y_feas_t | OT_REAL         | 0.000           | Feasibility     |
+>| ol              |                 |                 | threshold for   |
+>|                 |                 |                 | recomputation   |
+>|                 |                 |                 | of multipliers. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| replace_bounds  | OT_STRING       | no              | Indicates if    |
+>|                 |                 |                 | all variable    |
+>|                 |                 |                 | bounds should   |
+>|                 |                 |                 | be replaced by  |
+>|                 |                 |                 | inequality      |
+>|                 |                 |                 | constraints     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| required_infeas | OT_REAL         | 0.900           | Required        |
+>| ibility_reducti |                 |                 | reduction of    |
+>| on              |                 |                 | infeasibility   |
+>|                 |                 |                 | before leaving  |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | phase. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| residual_improv | OT_REAL         | 1.000           | Minimal         |
+>| ement_factor    |                 |                 | required        |
+>|                 |                 |                 | reduction of    |
+>|                 |                 |                 | residual test   |
+>|                 |                 |                 | ratio in        |
+>|                 |                 |                 | iterative       |
+>|                 |                 |                 | refinement.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| residual_ratio_ | OT_REAL         | 0.000           | Iterative       |
+>| max             |                 |                 | refinement      |
+>|                 |                 |                 | tolerance (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| residual_ratio_ | OT_REAL         | 0.000           | Threshold for   |
+>| singular        |                 |                 | declaring       |
+>|                 |                 |                 | linear system   |
+>|                 |                 |                 | singular after  |
+>|                 |                 |                 | failed          |
+>|                 |                 |                 | iterative       |
+>|                 |                 |                 | refinement.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| resto_failure_f | OT_REAL         | 0               | Threshold for   |
+>| easibility_thre |                 |                 | primal          |
+>| shold           |                 |                 | infeasibility   |
+>|                 |                 |                 | to declare      |
+>|                 |                 |                 | failure of      |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | phase. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| resto_penalty_p | OT_REAL         | 1000            | Penalty         |
+>| arameter        |                 |                 | parameter in    |
+>|                 |                 |                 | the restoration |
+>|                 |                 |                 | phase objective |
+>|                 |                 |                 | function. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| resto_proximity | OT_REAL         | 1               | Weighting       |
+>| _weight         |                 |                 | factor for the  |
+>|                 |                 |                 | proximity term  |
+>|                 |                 |                 | in restoration  |
+>|                 |                 |                 | phase           |
+>|                 |                 |                 | objective. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| rho             | OT_REAL         | 0.100           | Value in        |
+>|                 |                 |                 | penalty         |
+>|                 |                 |                 | parameter       |
+>|                 |                 |                 | update formula. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| s_max           | OT_REAL         | 100             | Scaling         |
+>|                 |                 |                 | threshold for   |
+>|                 |                 |                 | the NLP error.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| s_phi           | OT_REAL         | 2.300           | Exponent for    |
+>|                 |                 |                 | linear barrier  |
+>|                 |                 |                 | function model  |
+>|                 |                 |                 | in the          |
+>|                 |                 |                 | switching rule. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| s_theta         | OT_REAL         | 1.100           | Exponent for    |
+>|                 |                 |                 | current         |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | violation in    |
+>|                 |                 |                 | the switching   |
+>|                 |                 |                 | rule. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| sb              | OT_STRING       | no              | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| sigma_max       | OT_REAL         | 100             | Maximum value   |
+>|                 |                 |                 | of the          |
+>|                 |                 |                 | centering       |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| sigma_min       | OT_REAL         | 0.000           | Minimum value   |
+>|                 |                 |                 | of the          |
+>|                 |                 |                 | centering       |
+>|                 |                 |                 | parameter. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| skip_corr_if_ne | OT_STRING       | yes             | Skip the        |
+>| g_curv          |                 |                 | corrector step  |
+>|                 |                 |                 | in negative     |
+>|                 |                 |                 | curvature       |
+>|                 |                 |                 | iteration       |
+>|                 |                 |                 | (unsupported!). |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| skip_corr_in_mo | OT_STRING       | yes             | Skip the        |
+>| notone_mode     |                 |                 | corrector step  |
+>|                 |                 |                 | during monotone |
+>|                 |                 |                 | barrier         |
+>|                 |                 |                 | parameter mode  |
+>|                 |                 |                 | (unsupported!). |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| skip_finalize_s | OT_STRING       | no              | Indicates if    |
+>| olution_call    |                 |                 | call to NLP::Fi |
+>|                 |                 |                 | nalizeSolution  |
+>|                 |                 |                 | after           |
+>|                 |                 |                 | optimization    |
+>|                 |                 |                 | should be       |
+>|                 |                 |                 | suppressed (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| slack_bound_fra | OT_REAL         | 0.010           | Desired minimum |
+>| c               |                 |                 | relative        |
+>|                 |                 |                 | distance from   |
+>|                 |                 |                 | the initial     |
+>|                 |                 |                 | slack to bound. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| slack_bound_pus | OT_REAL         | 0.010           | Desired minimum |
+>| h               |                 |                 | absolute        |
+>|                 |                 |                 | distance from   |
+>|                 |                 |                 | the initial     |
+>|                 |                 |                 | slack to bound. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| slack_move      | OT_REAL         | 0.000           | Correction size |
+>|                 |                 |                 | for very small  |
+>|                 |                 |                 | slacks. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| soft_resto_pder | OT_REAL         | 1.000           | Required        |
+>| ror_reduction_f |                 |                 | reduction in    |
+>| actor           |                 |                 | primal-dual     |
+>|                 |                 |                 | error in the    |
+>|                 |                 |                 | soft            |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | phase. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| start_with_rest | OT_STRING       | no              | Tells algorithm |
+>| o               |                 |                 | to switch to    |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | phase in first  |
+>|                 |                 |                 | iteration. (see |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| suppress_all_ou | OT_STRING       | no              | Undocumented    |
+>| tput            |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tau_min         | OT_REAL         | 0.990           | Lower bound on  |
+>|                 |                 |                 | fraction-to-    |
+>|                 |                 |                 | the-boundary    |
+>|                 |                 |                 | parameter tau.  |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| theta_max_fact  | OT_REAL         | 10000           | Determines      |
+>|                 |                 |                 | upper bound for |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | violation in    |
+>|                 |                 |                 | the filter.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| theta_min       | OT_REAL         | 0.000           | LIFENG WRITES   |
+>|                 |                 |                 | THIS. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| theta_min_fact  | OT_REAL         | 0.000           | Determines      |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | violation       |
+>|                 |                 |                 | threshold in    |
+>|                 |                 |                 | the switching   |
+>|                 |                 |                 | rule. (see      |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tiny_step_tol   | OT_REAL         | 0.000           | Tolerance for   |
+>|                 |                 |                 | detecting       |
+>|                 |                 |                 | numerically     |
+>|                 |                 |                 | insignificant   |
+>|                 |                 |                 | steps. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tiny_step_y_tol | OT_REAL         | 0.010           | Tolerance for   |
+>|                 |                 |                 | quitting        |
+>|                 |                 |                 | because of      |
+>|                 |                 |                 | numerically     |
+>|                 |                 |                 | insignificant   |
+>|                 |                 |                 | steps. (see     |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tol             | OT_REAL         | 0.000           | Desired         |
+>|                 |                 |                 | convergence     |
+>|                 |                 |                 | tolerance       |
+>|                 |                 |                 | (relative).     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| var_integer_md  | OT_DICTIONARY   | None            | Integer         |
+>|                 |                 |                 | metadata (a     |
+>|                 |                 |                 | dictionary with |
+>|                 |                 |                 | lists of        |
+>|                 |                 |                 | integers) about |
+>|                 |                 |                 | variables to be |
+>|                 |                 |                 | passed to IPOPT |
+>+-----------------+-----------------+-----------------+-----------------+
+>| var_numeric_md  | OT_DICTIONARY   | None            | Numeric         |
+>|                 |                 |                 | metadata (a     |
+>|                 |                 |                 | dictionary with |
+>|                 |                 |                 | lists of reals) |
+>|                 |                 |                 | about variables |
+>|                 |                 |                 | to be passed to |
+>|                 |                 |                 | IPOPT           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| var_string_md   | OT_DICTIONARY   | None            | String metadata |
+>|                 |                 |                 | (a dictionary   |
+>|                 |                 |                 | with lists of   |
+>|                 |                 |                 | strings) about  |
+>|                 |                 |                 | variables to be |
+>|                 |                 |                 | passed to IPOPT |
+>+-----------------+-----------------+-----------------+-----------------+
+>| vartheta        | OT_REAL         | 0.500           | a parameter     |
+>|                 |                 |                 | used to check   |
+>|                 |                 |                 | if the fast     |
+>|                 |                 |                 | direction can   |
+>|                 |                 |                 | be used asthe   |
+>|                 |                 |                 | line search     |
+>|                 |                 |                 | direction (for  |
+>|                 |                 |                 | Chen-Goldfarb   |
+>|                 |                 |                 | line search).   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| warm_start_boun | OT_REAL         | 0.001           | same as         |
+>| d_frac          |                 |                 | bound_frac for  |
+>|                 |                 |                 | the regular     |
+>|                 |                 |                 | initializer.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| warm_start_boun | OT_REAL         | 0.001           | same as         |
+>| d_push          |                 |                 | bound_push for  |
+>|                 |                 |                 | the regular     |
+>|                 |                 |                 | initializer.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| warm_start_enti | OT_STRING       | no              | Tells algorithm |
+>| re_iterate      |                 |                 | whether to use  |
+>|                 |                 |                 | the GetWarmStar |
+>|                 |                 |                 | tIterate method |
+>|                 |                 |                 | in the NLP.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| warm_start_init | OT_STRING       | no              | Warm-start for  |
+>| _point          |                 |                 | initial point   |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| warm_start_mult | OT_REAL         | 0.001           | same as         |
+>| _bound_push     |                 |                 | mult_bound_push |
+>|                 |                 |                 | for the regular |
+>|                 |                 |                 | initializer.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| warm_start_mult | OT_REAL         | 1000000         | Maximum initial |
+>| _init_max       |                 |                 | value for the   |
+>|                 |                 |                 | equality        |
+>|                 |                 |                 | multipliers.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| warm_start_same | OT_STRING       | no              | Indicates       |
+>| _structure      |                 |                 | whether a       |
+>|                 |                 |                 | problem with a  |
+>|                 |                 |                 | structure       |
+>|                 |                 |                 | identical to    |
+>|                 |                 |                 | the previous    |
+>|                 |                 |                 | one is to be    |
+>|                 |                 |                 | solved. (see    |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| warm_start_slac | OT_REAL         | 0.001           | same as slack_b |
+>| k_bound_frac    |                 |                 | ound_frac for   |
+>|                 |                 |                 | the regular     |
+>|                 |                 |                 | initializer.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| warm_start_slac | OT_REAL         | 0.001           | same as slack_b |
+>| k_bound_push    |                 |                 | ound_push for   |
+>|                 |                 |                 | the regular     |
+>|                 |                 |                 | initializer.    |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| warm_start_targ | OT_REAL         | 0               | Unsupported!    |
+>| et_mu           |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| watchdog_shorte | OT_INTEGER      | 10              | Number of       |
+>| ned_iter_trigge |                 |                 | shortened       |
+>| r               |                 |                 | iterations that |
+>|                 |                 |                 | trigger the     |
+>|                 |                 |                 | watchdog. (see  |
+>|                 |                 |                 | IPOPT           |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| watchdog_trial_ | OT_INTEGER      | 3               | Maximum number  |
+>| iter_max        |                 |                 | of watchdog     |
+>|                 |                 |                 | iterations.     |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| wsmp_iterative  | OT_STRING       | no              | Switches to     |
+>|                 |                 |                 | iterative       |
+>|                 |                 |                 | solver in WSMP. |
+>|                 |                 |                 | (see IPOPT      |
+>|                 |                 |                 | documentation)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available monitors
+>+-------------+
+>|     Id      |
+>+=============+
+>| eval_f      |
+>+-------------+
+>| eval_g      |
+>+-------------+
+>| eval_grad_f |
+>+-------------+
+>| eval_h      |
+>+-------------+
+>| eval_jac_g  |
+>+-------------+
+>
+>>List of available stats
+>+--------------------+
+>|         Id         |
+>+====================+
+>| con_integer_md     |
+>+--------------------+
+>| con_numeric_md     |
+>+--------------------+
+>| con_string_md      |
+>+--------------------+
+>| iter_count         |
+>+--------------------+
+>| iteration          |
+>+--------------------+
+>| iterations         |
+>+--------------------+
+>| n_eval_f           |
+>+--------------------+
+>| n_eval_g           |
+>+--------------------+
+>| n_eval_grad_f      |
+>+--------------------+
+>| n_eval_h           |
+>+--------------------+
+>| n_eval_jac_g       |
+>+--------------------+
+>| return_status      |
+>+--------------------+
+>| t_callback_fun     |
+>+--------------------+
+>| t_callback_prepare |
+>+--------------------+
+>| t_eval_f           |
+>+--------------------+
+>| t_eval_g           |
+>+--------------------+
+>| t_eval_grad_f      |
+>+--------------------+
+>| t_eval_h           |
+>+--------------------+
+>| t_eval_jac_g       |
+>+--------------------+
+>| t_mainloop         |
+>+--------------------+
+>| var_integer_md     |
+>+--------------------+
+>| var_numeric_md     |
+>+--------------------+
+>| var_string_md      |
+>+--------------------+
+>
+>knitro
+>
+>KNITRO interface
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| BarRule         | OT_INTEGER      | 0               | Barrier Rule    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| Debug           | OT_INTEGER      | 0               | Debug level     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| Delta           | OT_REAL         | 1               | Initial region  |
+>|                 |                 |                 | scaling factor  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FeasModeTol     | OT_REAL         | 0.000           | Feasible mode   |
+>|                 |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FeasTol         | OT_REAL         | 0.000           | Feasible        |
+>|                 |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FeasTolAbs      | OT_REAL         | 1               | Absolute        |
+>|                 |                 |                 | feasible        |
+>|                 |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| Feasible        | OT_BOOLEAN      | 0               | Allow           |
+>|                 |                 |                 | infeasible      |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| GradOpt         | OT_INTEGER      | 1               | Gradient        |
+>|                 |                 |                 | calculation     |
+>|                 |                 |                 | method          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| HessOpt         | OT_INTEGER      | 1               | Hessian         |
+>|                 |                 |                 | calculation     |
+>|                 |                 |                 | method          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| HonorBnds       | OT_BOOLEAN      | 0               | Enforce bounds  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| InitPt          | OT_BOOLEAN      | 0               | Use initial     |
+>|                 |                 |                 | point strategy  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| LmSize          | OT_INTEGER      | 10              | Memory pairsize |
+>|                 |                 |                 | limit           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| LpSolver        | OT_BOOLEAN      | 0               | Use LpSolver    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MaxCgIt         | OT_INTEGER      | 0               | Maximum         |
+>|                 |                 |                 | conjugate       |
+>|                 |                 |                 | gradient        |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MaxIt           | OT_INTEGER      | 10000           | Iteration limit |
+>+-----------------+-----------------+-----------------+-----------------+
+>| Mu              | OT_REAL         | 0.100           | Initial barrier |
+>|                 |                 |                 | parameter       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| Multistart      | OT_BOOLEAN      | 0               | Use multistart  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| NewPoint        | OT_BOOLEAN      | 0               | Select new-     |
+>|                 |                 |                 | point feature   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ObjRange        | OT_REAL         | 0.000           | Maximum         |
+>|                 |                 |                 | objective value |
+>+-----------------+-----------------+-----------------+-----------------+
+>| OptTol          | OT_REAL         | 0.000           | Relative        |
+>|                 |                 |                 | optimality      |
+>|                 |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| OptTolAbs       | OT_REAL         | 0               | Absolute        |
+>|                 |                 |                 | optimality      |
+>|                 |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| OutLev          | OT_INTEGER      | 2               | Log output      |
+>|                 |                 |                 | level           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| Pivot           | OT_REAL         | 0.000           | Initial pivot   |
+>|                 |                 |                 | threshold       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| Scale           | OT_BOOLEAN      | 1               | Perform scaling |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ShiftInit       | OT_BOOLEAN      | 1               | Interior-point  |
+>|                 |                 |                 | shifting        |
+>|                 |                 |                 | initial point   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| Soc             | OT_INTEGER      | 1               | Second order    |
+>|                 |                 |                 | correction      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| XTol            | OT_REAL         | 0.000           | Relative        |
+>|                 |                 |                 | solution change |
+>|                 |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| contype         | OT_INTEGERVECTO |                 |                 |
+>|                 | R               |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available monitors
+>+-------------+
+>|     Id      |
+>+=============+
+>| eval_f      |
+>+-------------+
+>| eval_g      |
+>+-------------+
+>| eval_grad_f |
+>+-------------+
+>| eval_h      |
+>+-------------+
+>| eval_jac_g  |
+>+-------------+
+>
+>snopt
+>
+>SNOPT interface
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| _feasibility_to | OT_REAL         | None            | Feasibility     |
+>| lerance         |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _iprint         | OT_INTEGER      | 0               | n/a             |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _isumm          | OT_INTEGER      | 6               | n/a             |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _major_iteratio | OT_INTEGER      | None            | Major iteration |
+>| n_limit         |                 |                 | limit           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _minor_iteratio | OT_INTEGER      | None            | Minor iteration |
+>| n_limit         |                 |                 | limit           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _optimality_tol | OT_REAL         | None            | Optimality      |
+>| erance          |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _scale_option   | OT_INTEGER      | None            | Scale option    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _start          | OT_STRING       | Cold            |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _verify_level   | OT_INTEGER      | None            | Verify level    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| detect_linear   | OT_BOOLEAN      | True            | Make an effort  |
+>|                 |                 |                 | to treat linear |
+>|                 |                 |                 | constraints and |
+>|                 |                 |                 | linear          |
+>|                 |                 |                 | variables       |
+>|                 |                 |                 | specially.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_time      | OT_BOOLEAN      | True            | print           |
+>|                 |                 |                 | information     |
+>|                 |                 |                 | about execution |
+>|                 |                 |                 | time            |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available monitors
+>+-----------+
+>|    Id     |
+>+===========+
+>| eval_nlp  |
+>+-----------+
+>| setup_nlp |
+>+-----------+
+>
+>>List of available stats
+>+----------------+
+>|       Id       |
+>+================+
+>| iter_count     |
+>+----------------+
+>| iterations     |
+>+----------------+
+>| n_callback_fun |
+>+----------------+
+>| n_eval_grad_f  |
+>+----------------+
+>| n_eval_jac_g   |
+>+----------------+
+>| return_status  |
+>+----------------+
+>| t_callback_fun |
+>+----------------+
+>| t_eval_grad_f  |
+>+----------------+
+>| t_eval_jac_g   |
+>+----------------+
+>| t_mainloop     |
+>+----------------+
+>
+>worhp
+>
+>WORHP interface
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| AcceptTolFeas   | OT_REAL         | 0.001           | Tolerance for   |
+>|                 |                 |                 | acceptable      |
+>|                 |                 |                 | feasibility     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| AcceptTolOpti   | OT_REAL         | 0.001           | Tolerance for   |
+>|                 |                 |                 | acceptable      |
+>|                 |                 |                 | optimality      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| AlphaMinConst   | OT_BOOLEAN      | False           | Use a constant  |
+>|                 |                 |                 | lower bound on  |
+>|                 |                 |                 | Armijo stepsize |
+>|                 |                 |                 | in Filter       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| Ares            | OT_INTEGERVECTO | [42, 41, 42,    | Armijo recovery |
+>|                 | R               | 43, 44, 41, 50] | strategies.     |
+>|                 |                 |                 | Vector of size  |
+>|                 |                 |                 | 7               |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ArmijoBeta      | OT_REAL         | 0.712           | Trial stepsize  |
+>|                 |                 |                 | decrease factor |
+>|                 |                 |                 | for Armijo rule |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ArmijoMaxAlpha  | OT_REAL         | 1               | Initial alpha   |
+>|                 |                 |                 | for Armijo rule |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ArmijoMinAlpha  | OT_REAL         | 0.000           | Lower bound on  |
+>|                 |                 |                 | alpha for       |
+>|                 |                 |                 | Armijo rule     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ArmijoMinAlphaR | OT_REAL         | 0.000           | Lower bound on  |
+>| ec              |                 |                 | alpha for       |
+>|                 |                 |                 | Armijo rule     |
+>|                 |                 |                 | during recovery |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ArmijoSigma     | OT_REAL         | 0.005           | Scale factor    |
+>|                 |                 |                 | for linearised  |
+>|                 |                 |                 | descent check   |
+>|                 |                 |                 | in Armijo rule  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| AutoQPRecovery  | OT_BOOLEAN      | True            | Enable          |
+>|                 |                 |                 | automatic QP    |
+>|                 |                 |                 | recovery        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| BFGSmaxblockSiz | OT_INTEGER      | 300             | Block size      |
+>| e               |                 |                 | parameter used  |
+>|                 |                 |                 | by certain BFGS |
+>|                 |                 |                 | methods         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| BFGSmethod      | OT_INTEGER      | 0               | Choose BFGS     |
+>|                 |                 |                 | method (0:      |
+>|                 |                 |                 | dense, 1-3:     |
+>|                 |                 |                 | block, 100+:    |
+>|                 |                 |                 | sparse)         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| BFGSminblockSiz | OT_INTEGER      | 300             | Block size      |
+>| e               |                 |                 | parameter used  |
+>|                 |                 |                 | by certain BFGS |
+>|                 |                 |                 | methods         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| BFGSrestart     | OT_INTEGER      | 50              | Restart BFGS    |
+>|                 |                 |                 | update after    |
+>|                 |                 |                 | this many       |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| BettsFactor     | OT_REAL         | 2.100           | Update factor   |
+>|                 |                 |                 | for Betts'      |
+>|                 |                 |                 | Hessian         |
+>|                 |                 |                 | regularisation  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| BettsPoint      | OT_REAL         | 1               | Smallest        |
+>|                 |                 |                 | eigenvalue of   |
+>|                 |                 |                 | the regularised |
+>|                 |                 |                 | Hessian         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| BoundTolFac     | OT_REAL         | 1000            | Factor in       |
+>|                 |                 |                 | determining     |
+>|                 |                 |                 | active          |
+>|                 |                 |                 | constraints by  |
+>|                 |                 |                 | KKT             |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CheckFJ         | OT_REAL         | 1.000e+12       | Upper bound     |
+>|                 |                 |                 | used by Fritz-  |
+>|                 |                 |                 | John heuristic  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CheckStructureD | OT_BOOLEAN      | True            | Enable          |
+>| F               |                 |                 | structural      |
+>|                 |                 |                 | checking of DF  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CheckStructureD | OT_BOOLEAN      | True            | Enable          |
+>| G               |                 |                 | structural      |
+>|                 |                 |                 | checking of DG  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CheckStructureH | OT_BOOLEAN      | True            | Enable          |
+>| M               |                 |                 | structural      |
+>|                 |                 |                 | checking of HM  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CorStepBettsSum | OT_REAL         | 0.500           | (experimental)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CorStepConStop  | OT_REAL         | 0.000           | (experimental)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CorStepConvio   | OT_REAL         | 1               | (experimental)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CorStepMaxIter  | OT_INTEGER      | 50              | (experimental)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CorStepMethod   | OT_INTEGER      | 0               | (experimental)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CorStepMode     | OT_INTEGER      | 1               | (experimental)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CorStepPFactor  | OT_REAL         | 1               | (experimental)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CorStepPMax     | OT_REAL         | 1000000         | (experimental)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CorStepRecovery | OT_BOOLEAN      | False           | (experimental)  |
+>| DX              |                 |                 |                 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CurvBCond       | OT_REAL         | 0.020           | Block BFGS      |
+>|                 |                 |                 | curvature       |
+>|                 |                 |                 | condition bound |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CurvBFac        | OT_REAL         | 0.300           | Block BFGS      |
+>|                 |                 |                 | curvature       |
+>|                 |                 |                 | condition       |
+>|                 |                 |                 | regularisation  |
+>|                 |                 |                 | factor          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CurvCond        | OT_REAL         | 0.020           | BFGS Curvature  |
+>|                 |                 |                 | condition bound |
+>+-----------------+-----------------+-----------------+-----------------+
+>| CurvFac         | OT_REAL         | 0.300           | BFGS curvature  |
+>|                 |                 |                 | condition       |
+>|                 |                 |                 | regularisation  |
+>|                 |                 |                 | factor          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| DebugMarker05   | OT_INTEGER      | 42              | Debug marker.   |
+>|                 |                 |                 | Used to find    |
+>|                 |                 |                 | memory alignmen |
+>|                 |                 |                 | t/padding       |
+>|                 |                 |                 | issues          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| DebugMarker06   | OT_INTEGER      | 42              | Debug marker.   |
+>|                 |                 |                 | Used to find    |
+>|                 |                 |                 | memory alignmen |
+>|                 |                 |                 | t/padding       |
+>|                 |                 |                 | issues          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FGtogether      | OT_BOOLEAN      | False           | F and G cannot  |
+>|                 |                 |                 | be evaluated    |
+>|                 |                 |                 | separately      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FJandND         | OT_BOOLEAN      | False           | Enable Fritz-   |
+>|                 |                 |                 | John and non-   |
+>|                 |                 |                 | differentiable  |
+>|                 |                 |                 | check           |
+>|                 |                 |                 | heuristics      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FeasibleDual    | OT_BOOLEAN      | False           | Activate dual   |
+>|                 |                 |                 | feasibility     |
+>|                 |                 |                 | mode            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FeasibleInit    | OT_BOOLEAN      | False           | Activate        |
+>|                 |                 |                 | initial         |
+>|                 |                 |                 | feasibility     |
+>|                 |                 |                 | mode            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FeasibleInitTol | OT_REAL         | 0.001           | Feasibility     |
+>|                 |                 |                 | tolerance for   |
+>|                 |                 |                 | no-objective    |
+>|                 |                 |                 | feasible mode   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FeasibleOnly    | OT_BOOLEAN      | False           | Activate        |
+>|                 |                 |                 | feasible-only   |
+>|                 |                 |                 | mode            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FidifEps        | OT_REAL         | 0.000           | Finite          |
+>|                 |                 |                 | difference      |
+>|                 |                 |                 | perturbation    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FidifHM         | OT_BOOLEAN      | False           | Approximate     |
+>|                 |                 |                 | Hessian by      |
+>|                 |                 |                 | finite          |
+>|                 |                 |                 | differences     |
+>|                 |                 |                 | (otherwise      |
+>|                 |                 |                 | BFGS)           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FilterBisecAlph | OT_BOOLEAN      | True            | Filter          |
+>| a               |                 |                 | heuristic to    |
+>|                 |                 |                 | save Armijo     |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FilterGammaCV   | OT_REAL         | 0.000           | Constraint      |
+>|                 |                 |                 | violation       |
+>|                 |                 |                 | decrease factor |
+>|                 |                 |                 | in Filter       |
+>|                 |                 |                 | acceptance      |
+>|                 |                 |                 | check           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FilterGammaF    | OT_REAL         | 0.000           | Objective       |
+>|                 |                 |                 | decrease factor |
+>|                 |                 |                 | in Filter       |
+>|                 |                 |                 | acceptance      |
+>|                 |                 |                 | check           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FilterIntersecA | OT_BOOLEAN      | True            | Filter          |
+>| lpha            |                 |                 | heuristic to    |
+>|                 |                 |                 | save Armijo     |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FirstDifCentral | OT_BOOLEAN      | True            | Use central     |
+>|                 |                 |                 | finite          |
+>|                 |                 |                 | difference      |
+>|                 |                 |                 | quotient for    |
+>|                 |                 |                 | first           |
+>|                 |                 |                 | derivatives     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FocusOnFeas     | OT_BOOLEAN      | True            | Enable Focus-   |
+>|                 |                 |                 | on-Feasibility  |
+>|                 |                 |                 | mode            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| FocusOnFeasFact | OT_REAL         | 1.360           | Factor in       |
+>| or              |                 |                 | Focus-on-       |
+>|                 |                 |                 | Feasibility     |
+>|                 |                 |                 | mode            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| GammaAlpha      | OT_REAL         | 0.050           | Safety factor   |
+>|                 |                 |                 | for alphamin    |
+>|                 |                 |                 | calculation by  |
+>|                 |                 |                 | Filter          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| GroupMethod     | OT_INTEGER      | 1               | Select method   |
+>|                 |                 |                 | to determine    |
+>|                 |                 |                 | graph colouring |
+>|                 |                 |                 | groups          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| IgnoreFilterCri | OT_BOOLEAN      | False           | Activate        |
+>| t               |                 |                 | accelerating    |
+>|                 |                 |                 | heuristics for  |
+>|                 |                 |                 | Filter          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| IncBettsTau     | OT_REAL         | 2               | Increase factor |
+>|                 |                 |                 | for Betts'      |
+>|                 |                 |                 | update          |
+>|                 |                 |                 | dampening term  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| IncBettsTauMore | OT_REAL         | 100             | Larger increase |
+>|                 |                 |                 | factor for      |
+>|                 |                 |                 | Betts' update   |
+>|                 |                 |                 | dampening term  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| IncreaseIWS     | OT_REAL         | 1               | Increase factor |
+>|                 |                 |                 | for estimated   |
+>|                 |                 |                 | integer         |
+>|                 |                 |                 | workspace       |
+>|                 |                 |                 | requirement     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| IncreaseRWS     | OT_REAL         | 1               | Increase factor |
+>|                 |                 |                 | for estimated   |
+>|                 |                 |                 | real workspace  |
+>|                 |                 |                 | requirement     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| Infty           | OT_REAL         | 1.000e+20       | Upper bound for |
+>|                 |                 |                 | numbers to be   |
+>|                 |                 |                 | regarded as     |
+>|                 |                 |                 | finite          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| InftyUnbounded  | OT_REAL         | 1.000e+20       | Tolerance for   |
+>|                 |                 |                 | unboundedness   |
+>|                 |                 |                 | detection       |
+>|                 |                 |                 | heuristic       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| InitialLMest    | OT_BOOLEAN      | True            | Enable initial  |
+>|                 |                 |                 | Lagrange        |
+>|                 |                 |                 | multiplier      |
+>|                 |                 |                 | estimate        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| KeepAcceptableS | OT_BOOLEAN      | True            | Save acceptable |
+>| ol              |                 |                 | solutions as    |
+>|                 |                 |                 | fallback        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| LMestQPipComTol | OT_REAL         | 0.003           | IP              |
+>|                 |                 |                 | complementarity |
+>|                 |                 |                 | tolerance in    |
+>|                 |                 |                 | initial         |
+>|                 |                 |                 | multiplier      |
+>|                 |                 |                 | estimate        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| LMestQPipResTol | OT_REAL         | 1               | IP residual     |
+>|                 |                 |                 | tolerance in    |
+>|                 |                 |                 | initial         |
+>|                 |                 |                 | multiplier      |
+>|                 |                 |                 | estimate        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| LinMult         | OT_BOOLEAN      | False           | Control         |
+>|                 |                 |                 | Lagrange        |
+>|                 |                 |                 | multiplier      |
+>|                 |                 |                 | update          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| LogLevel        | OT_INTEGER      | 0               | Enable XML      |
+>|                 |                 |                 | logfiles and    |
+>|                 |                 |                 | writing         |
+>|                 |                 |                 | interval        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| LogResult       | OT_INTEGER      | 0               | Enable XML      |
+>|                 |                 |                 | result logging  |
+>|                 |                 |                 | and detail      |
+>|                 |                 |                 | level           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| LowPassAlphaF   | OT_REAL         | 0.950           | Lowpass-filter  |
+>|                 |                 |                 | update factor   |
+>|                 |                 |                 | for objective   |
+>|                 |                 |                 | values          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| LowPassAlphaG   | OT_REAL         | 0.950           | Lowpass-filter  |
+>|                 |                 |                 | update factor   |
+>|                 |                 |                 | for constraint  |
+>|                 |                 |                 | values          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| LowPassAlphaMer | OT_REAL         | 0.100           | Lowpass-filter  |
+>| it              |                 |                 | update factor   |
+>|                 |                 |                 | for merit       |
+>|                 |                 |                 | function values |
+>+-----------------+-----------------+-----------------+-----------------+
+>| LowPassFilter   | OT_BOOLEAN      | True            | Enable lowpass- |
+>|                 |                 |                 | filter          |
+>|                 |                 |                 | termination     |
+>|                 |                 |                 | criterion       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MAPivotThreshol | OT_REAL         | 0.000           | Pivoting        |
+>| d               |                 |                 | tolerance for   |
+>|                 |                 |                 | MA solvers      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MatrixCC        | OT_BOOLEAN      | False           | Not to be       |
+>|                 |                 |                 | included into a |
+>|                 |                 |                 | parameter file! |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MaxCalls        | OT_INTEGER      | 2.147e+09       | Upper bound to  |
+>|                 |                 |                 | Reverse         |
+>|                 |                 |                 | Communication   |
+>|                 |                 |                 | calls           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MaxForce        | OT_INTEGER      | 1000            | Maximum number  |
+>|                 |                 |                 | of Force        |
+>|                 |                 |                 | recovery        |
+>|                 |                 |                 | strategy steps  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MaxGPart        | OT_INTEGER      | 1               | (experimental)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MaxIter         | OT_INTEGER      | 500             | Upper bound on  |
+>|                 |                 |                 | major           |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MaxLScounter    | OT_INTEGER      | 3               | Control         |
+>|                 |                 |                 | activation of   |
+>|                 |                 |                 | Filter          |
+>|                 |                 |                 | acceleration    |
+>|                 |                 |                 | heuristics      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MaxNorm         | OT_BOOLEAN      | True            | Select max-norm |
+>|                 |                 |                 | instead of      |
+>|                 |                 |                 | 1-norm in       |
+>|                 |                 |                 | Filter          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MeritFunction   | OT_INTEGER      | 4               | Select merit    |
+>|                 |                 |                 | function and    |
+>|                 |                 |                 | penalty update  |
+>|                 |                 |                 | [0, 3..5]       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MeritGradTol    | OT_REAL         | 0.000           | Threshold of    |
+>|                 |                 |                 | meritfunction   |
+>|                 |                 |                 | gradient for    |
+>|                 |                 |                 | increasing      |
+>|                 |                 |                 | Hessian         |
+>|                 |                 |                 | regularisation  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MinBettsTau     | OT_REAL         | 0.000           | Lower bound for |
+>|                 |                 |                 | Betts' update   |
+>|                 |                 |                 | dampening term  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| MoreRelax       | OT_BOOLEAN      | False           | Introduce one   |
+>|                 |                 |                 | relaxation      |
+>|                 |                 |                 | variable for    |
+>|                 |                 |                 | every           |
+>|                 |                 |                 | constraint      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| NLPmethod       | OT_INTEGER      | 1               | Select (1)      |
+>|                 |                 |                 | Meritfunction   |
+>|                 |                 |                 | or (3) Filter   |
+>|                 |                 |                 | globalisation   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| NLPprint        | OT_INTEGER      | 2               | NLP print level |
+>|                 |                 |                 | [-1..4]         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| PairMethod      | OT_INTEGER      | 1               | Select method   |
+>|                 |                 |                 | to determine    |
+>|                 |                 |                 | graph colouring |
+>|                 |                 |                 | pairgroups      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| PenUpdEpsBar    | OT_REAL         | 0.900           | Penalty update  |
+>|                 |                 |                 | parameter       |
+>|                 |                 |                 | factor for      |
+>|                 |                 |                 | MeritFunction = |
+>|                 |                 |                 | 3               |
+>+-----------------+-----------------+-----------------+-----------------+
+>| PenUpdEpsKFac   | OT_REAL         | 2               | Penalty update  |
+>|                 |                 |                 | parameter       |
+>|                 |                 |                 | factor for      |
+>|                 |                 |                 | MeritFunction = |
+>|                 |                 |                 | 4               |
+>+-----------------+-----------------+-----------------+-----------------+
+>| PenUpdEpsKSeque | OT_INTEGER      | 2               | Penalty update  |
+>| nce             |                 |                 | parameter       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| PenUpdMaxDeltaK | OT_REAL         | 11              | Max penalty for |
+>|                 |                 |                 | MeritFunction = |
+>|                 |                 |                 | 4               |
+>+-----------------+-----------------+-----------------+-----------------+
+>| PenUpdMaxFac    | OT_REAL         | 100000000       | Max factor for  |
+>|                 |                 |                 | increasing      |
+>|                 |                 |                 | penalty for     |
+>|                 |                 |                 | MeritFunction = |
+>|                 |                 |                 | 4               |
+>+-----------------+-----------------+-----------------+-----------------+
+>| PenUpdRBar      | OT_REAL         | 2               | Penalty update  |
+>|                 |                 |                 | parameter for   |
+>|                 |                 |                 | MeritFunction = |
+>|                 |                 |                 | 3               |
+>+-----------------+-----------------+-----------------+-----------------+
+>| PrecisionF      | OT_REAL         | 0.000           | (currently      |
+>|                 |                 |                 | unused)         |
+>|                 |                 |                 | Relative        |
+>|                 |                 |                 | precision of    |
+>|                 |                 |                 | objective       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| PrecisionG      | OT_REAL         | 0.000           | (currently      |
+>|                 |                 |                 | unused)         |
+>|                 |                 |                 | Relative        |
+>|                 |                 |                 | precision of    |
+>|                 |                 |                 | constraints     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| QPscaleParam    | OT_REAL         | 0               | (currently      |
+>|                 |                 |                 | unused) Scaling |
+>|                 |                 |                 | factor for QP   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| QuadraticProble | OT_BOOLEAN      | False           | Not to be       |
+>| m               |                 |                 | included into a |
+>|                 |                 |                 | parameter file! |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ReduceBettsTau  | OT_REAL         | 0.300           | Decrease factor |
+>|                 |                 |                 | for Betts'      |
+>|                 |                 |                 | update          |
+>|                 |                 |                 | dampening term  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| RegStrategy     | OT_INTEGER      | 1               | Select Hessian  |
+>|                 |                 |                 | regularisation  |
+>|                 |                 |                 | strategy in     |
+>|                 |                 |                 | Filter          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ReinitFilter    | OT_BOOLEAN      | False           | Enables Filter- |
+>|                 |                 |                 | reinitialisatio |
+>|                 |                 |                 | n accelerating  |
+>|                 |                 |                 | heuristic       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| RelaxMaxDelta   | OT_REAL         | 0.920           | Upper bound for |
+>|                 |                 |                 | accepting the   |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | relaxation      |
+>|                 |                 |                 | variable        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| RelaxMaxPen     | OT_REAL         | 50000000        | Upper bound on  |
+>|                 |                 |                 | the constraint  |
+>|                 |                 |                 | relaxation      |
+>|                 |                 |                 | penalty         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| RelaxRho        | OT_REAL         | 6               | Update factor   |
+>|                 |                 |                 | for the         |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | relaxation      |
+>|                 |                 |                 | penalty         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| RelaxStart      | OT_REAL         | 1               | Initial value   |
+>|                 |                 |                 | of the          |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | relaxation      |
+>|                 |                 |                 | penalty         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| RestUntilFeas   | OT_BOOLEAN      | False           | Do restoration  |
+>|                 |                 |                 | until a         |
+>|                 |                 |                 | feasible        |
+>|                 |                 |                 | solution is     |
+>|                 |                 |                 | found           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ScaleConIter    | OT_BOOLEAN      | False           | Scale           |
+>|                 |                 |                 | constraints in  |
+>|                 |                 |                 | every iteration |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ScaleFacObj     | OT_REAL         | 10              | Value to scale  |
+>|                 |                 |                 | large objective |
+>|                 |                 |                 | functions to    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ScaleFacQP      | OT_REAL         | 10              | Upper bound on  |
+>|                 |                 |                 | resulting       |
+>|                 |                 |                 | matrix norm for |
+>|                 |                 |                 | QP scaling      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ScaledFD        | OT_BOOLEAN      | True            | Use a scaled    |
+>|                 |                 |                 | perturbation    |
+>|                 |                 |                 | for finite      |
+>|                 |                 |                 | differences     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ScaledKKT       | OT_BOOLEAN      | True            | Scale KKT       |
+>|                 |                 |                 | conditions      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ScaledObj       | OT_BOOLEAN      | True            | Scale the       |
+>|                 |                 |                 | objective       |
+>|                 |                 |                 | function        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| ScaledQP        | OT_BOOLEAN      | True            | Scale some      |
+>|                 |                 |                 | matrices handed |
+>|                 |                 |                 | to the QP       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| StartBettsTau   | OT_REAL         | 0.100           | Initial value   |
+>|                 |                 |                 | for Betts'      |
+>|                 |                 |                 | update          |
+>|                 |                 |                 | dampening term  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| SwitchingDelta  | OT_REAL         | 0.010           | Filter          |
+>|                 |                 |                 | switching       |
+>|                 |                 |                 | condition       |
+>|                 |                 |                 | parameter       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| SwitchingSCV    | OT_REAL         | 1.100           | Filter          |
+>|                 |                 |                 | switching       |
+>|                 |                 |                 | condition       |
+>|                 |                 |                 | parameter       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| SwitchingSF     | OT_REAL         | 2.300           | Filter          |
+>|                 |                 |                 | switching       |
+>|                 |                 |                 | condition       |
+>|                 |                 |                 | parameter       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| TakeQPSol       | OT_BOOLEAN      | False           | Evaluate QP     |
+>|                 |                 |                 | search          |
+>|                 |                 |                 | direction       |
+>|                 |                 |                 | regardless of   |
+>|                 |                 |                 | convergence     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| Timeout         | OT_REAL         | 300             | Timeout in      |
+>|                 |                 |                 | seconds         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| TolComp         | OT_REAL         | 0.001           | Complementarity |
+>|                 |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| TolFeas         | OT_REAL         | 0.000           | Feasibility     |
+>|                 |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| TolOpti         | OT_REAL         | 0.000           | Optimality      |
+>|                 |                 |                 | tolerance       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| TolWeakActive   | OT_REAL         | 1               | (experimental)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| TooBig          | OT_BOOLEAN      | True            | Enable too-big  |
+>|                 |                 |                 | termination     |
+>|                 |                 |                 | heuristics      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| TooBigCV        | OT_REAL         | 1.000e+25       | Upper bound on  |
+>|                 |                 |                 | constraint      |
+>|                 |                 |                 | violation for   |
+>|                 |                 |                 | too-big         |
+>|                 |                 |                 | heuristic       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| TooBigKKT       | OT_REAL         | 1.000e+30       | Upper bound on  |
+>|                 |                 |                 | KKT values for  |
+>|                 |                 |                 | too-big         |
+>|                 |                 |                 | heuristic       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| UserDF          | OT_BOOLEAN      | True            | Objective       |
+>|                 |                 |                 | gradient values |
+>|                 |                 |                 | supplied by     |
+>|                 |                 |                 | caller          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| UserDG          | OT_BOOLEAN      | True            | Jacobian values |
+>|                 |                 |                 | supplied by     |
+>|                 |                 |                 | caller          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| UserHM          | OT_BOOLEAN      | True            | Hessian values  |
+>|                 |                 |                 | supplied by     |
+>|                 |                 |                 | caller          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| UserHMstructure | OT_INTEGER      | 2               | Enable          |
+>|                 |                 |                 | automatic       |
+>|                 |                 |                 | Hessian         |
+>|                 |                 |                 | structure       |
+>|                 |                 |                 | generation or   |
+>|                 |                 |                 | checking        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| WeakActiveSet   | OT_BOOLEAN      | False           | (experimental)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| eps             | OT_REAL         | 0.000           | Machine epsilon |
+>+-----------------+-----------------+-----------------+-----------------+
+>| internalParChan | OT_INTEGER      | 0               | Counter for     |
+>| ged             |                 |                 | changed         |
+>|                 |                 |                 | parameters.     |
+>|                 |                 |                 | Internal use    |
+>|                 |                 |                 | only.           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_time      | OT_BOOLEAN      | True            | Print           |
+>|                 |                 |                 | information     |
+>|                 |                 |                 | about execution |
+>|                 |                 |                 | time            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_ipBarrier    | OT_REAL         | 7.800           | IP barrier      |
+>|                 |                 |                 | parameter.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_ipComTol     | OT_REAL         | 0.000           | IP              |
+>|                 |                 |                 | complementarity |
+>|                 |                 |                 | tolerance.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_ipFracBound  | OT_REAL         | 0.880           | IP fraction-to- |
+>|                 |                 |                 | the-boundary    |
+>|                 |                 |                 | parameter.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_ipLsMethod   | OT_STRING       | None            | Select the      |
+>|                 |                 |                 | direct linear   |
+>|                 |                 |                 | solver used by  |
+>|                 |                 |                 | the IP method.  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_ipMinAlpha   | OT_REAL         | 0.000           | IP line search  |
+>|                 |                 |                 | minimum step    |
+>|                 |                 |                 | size.           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_ipRelaxDiv   | OT_REAL         | 2               | The relaxation  |
+>|                 |                 |                 | term is divided |
+>|                 |                 |                 | by this value   |
+>|                 |                 |                 | if successful.  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_ipRelaxMax   | OT_REAL         | 0.000           | Maximum         |
+>|                 |                 |                 | relaxation      |
+>|                 |                 |                 | value.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_ipRelaxMin   | OT_REAL         | 0.000           | Mimimum         |
+>|                 |                 |                 | relaxation      |
+>|                 |                 |                 | value.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_ipRelaxMult  | OT_REAL         | 10              | The relaxation  |
+>|                 |                 |                 | term is         |
+>|                 |                 |                 | multiplied by   |
+>|                 |                 |                 | this value if   |
+>|                 |                 |                 | unsuccessful.   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_ipResTol     | OT_REAL         | 0.000           | IP residuals    |
+>|                 |                 |                 | tolerance.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_ipTryRelax   | OT_BOOLEAN      | True            | Enable          |
+>|                 |                 |                 | relaxation      |
+>|                 |                 |                 | strategy when   |
+>|                 |                 |                 | encountering an |
+>|                 |                 |                 | error.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_lsItMaxIter  | OT_INTEGER      | 1000            | Maximum number  |
+>|                 |                 |                 | of iterations   |
+>|                 |                 |                 | of the          |
+>|                 |                 |                 | iterative       |
+>|                 |                 |                 | linear solvers. |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_lsItMethod   | OT_STRING       | None            | Select the      |
+>|                 |                 |                 | iterative       |
+>|                 |                 |                 | linear solver.  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_lsItPrecondM | OT_STRING       | None            | Select          |
+>| ethod           |                 |                 | preconditioner  |
+>|                 |                 |                 | for the         |
+>|                 |                 |                 | iterative       |
+>|                 |                 |                 | linear solver.  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_lsRefineMaxI | OT_INTEGER      | 10              | Maximum number  |
+>| ter             |                 |                 | of iterative    |
+>|                 |                 |                 | refinement      |
+>|                 |                 |                 | steps of the    |
+>|                 |                 |                 | direct linear   |
+>|                 |                 |                 | solvers.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_lsScale      | OT_BOOLEAN      | True            | Enables scaling |
+>|                 |                 |                 | on linear       |
+>|                 |                 |                 | solver level.   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_lsTol        | OT_REAL         | 0.000           | Tolerance for   |
+>|                 |                 |                 | the linear      |
+>|                 |                 |                 | solver.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_lsTrySimple  | OT_BOOLEAN      | False           | Some matrices   |
+>|                 |                 |                 | can be solved   |
+>|                 |                 |                 | without calling |
+>|                 |                 |                 | a linear        |
+>|                 |                 |                 | equation solver |
+>|                 |                 |                 | .Currently only |
+>|                 |                 |                 | diagonal        |
+>|                 |                 |                 | matrices are    |
+>|                 |                 |                 | supported.Non-  |
+>|                 |                 |                 | diagonal        |
+>|                 |                 |                 | matrices will   |
+>|                 |                 |                 | besolved with   |
+>|                 |                 |                 | the chosen      |
+>|                 |                 |                 | linear equation |
+>|                 |                 |                 | solver.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_maxIter      | OT_INTEGER      | 80              | Imposes an      |
+>|                 |                 |                 | upper limit on  |
+>|                 |                 |                 | the number of   |
+>|                 |                 |                 | minor solver    |
+>|                 |                 |                 | iterations,     |
+>|                 |                 |                 | i.e. for the    |
+>|                 |                 |                 | quadratic       |
+>|                 |                 |                 | subproblem      |
+>|                 |                 |                 | solver.If the   |
+>|                 |                 |                 | limit is        |
+>|                 |                 |                 | reached before  |
+>|                 |                 |                 | convergence,    |
+>|                 |                 |                 | WORHP will      |
+>|                 |                 |                 | activate QP     |
+>|                 |                 |                 | recovery        |
+>|                 |                 |                 | strategies to   |
+>|                 |                 |                 | prevent a       |
+>|                 |                 |                 | solver          |
+>|                 |                 |                 | breakdown.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_method       | OT_STRING       | None            | Select the      |
+>|                 |                 |                 | solution method |
+>|                 |                 |                 | used by the QP  |
+>|                 |                 |                 | solver.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_nsnBeta      | OT_REAL         | 0.900           | NSN stepsize    |
+>|                 |                 |                 | decrease        |
+>|                 |                 |                 | factor.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_nsnGradStep  | OT_BOOLEAN      | True            | Enable gradient |
+>|                 |                 |                 | steps in the    |
+>|                 |                 |                 | NSN method.     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_nsnKKT       | OT_REAL         | 0.000           | NSN KKT         |
+>|                 |                 |                 | tolerance.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_nsnLsMethod  | OT_STRING       | None            | Select the      |
+>|                 |                 |                 | direct linear   |
+>|                 |                 |                 | solver used by  |
+>|                 |                 |                 | the NSN method. |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_nsnMinAlpha  | OT_REAL         | 0.000           | NSN line search |
+>|                 |                 |                 | minimum step    |
+>|                 |                 |                 | size.           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_nsnSigma     | OT_REAL         | 0.010           | NSN line search |
+>|                 |                 |                 | slope           |
+>|                 |                 |                 | parameter.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_printLevel   | OT_STRING       | None            | Controls the    |
+>|                 |                 |                 | amount of QP    |
+>|                 |                 |                 | solver output.  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_scaleIntern  | OT_BOOLEAN      | False           | Enable scaling  |
+>|                 |                 |                 | on QP level.    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_strict       | OT_BOOLEAN      | True            | Use strict      |
+>|                 |                 |                 | termination     |
+>|                 |                 |                 | criteria in IP  |
+>|                 |                 |                 | method.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available monitors
+>+-------------+
+>|     Id      |
+>+=============+
+>| eval_f      |
+>+-------------+
+>| eval_g      |
+>+-------------+
+>| eval_grad_f |
+>+-------------+
+>| eval_h      |
+>+-------------+
+>| eval_jac_g  |
+>+-------------+
+>
+>>List of available stats
+>+--------------------+
+>|         Id         |
+>+====================+
+>| iter_count         |
+>+--------------------+
+>| iteration          |
+>+--------------------+
+>| iterations         |
+>+--------------------+
+>| n_eval_f           |
+>+--------------------+
+>| n_eval_g           |
+>+--------------------+
+>| n_eval_grad_f      |
+>+--------------------+
+>| n_eval_h           |
+>+--------------------+
+>| n_eval_jac_g       |
+>+--------------------+
+>| return_code        |
+>+--------------------+
+>| return_status      |
+>+--------------------+
+>| t_callback_fun     |
+>+--------------------+
+>| t_callback_prepare |
+>+--------------------+
+>| t_eval_f           |
+>+--------------------+
+>| t_eval_g           |
+>+--------------------+
+>| t_eval_grad_f      |
+>+--------------------+
+>| t_eval_h           |
+>+--------------------+
+>| t_eval_jac_g       |
+>+--------------------+
+>| t_mainloop         |
+>+--------------------+
+>
+>scpgen
+>
+>A structure-exploiting sequential quadratic programming (to be come
+>sequential convex programming) method for nonlinear programming.
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| beta            | OT_REAL         | 0.800           | Line-search     |
+>|                 |                 |                 | parameter,      |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | factor of       |
+>|                 |                 |                 | stepsize        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| c1              | OT_REAL         | 0.000           | Armijo          |
+>|                 |                 |                 | condition,      |
+>|                 |                 |                 | coefficient of  |
+>|                 |                 |                 | decrease in     |
+>|                 |                 |                 | merit           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| codegen         | OT_BOOLEAN      | false           | C-code          |
+>|                 |                 |                 | generation      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| compiler        | OT_STRING       | "gcc -fPIC -O2" | Compiler        |
+>|                 |                 |                 | command to be   |
+>|                 |                 |                 | used for        |
+>|                 |                 |                 | compiling       |
+>|                 |                 |                 | generated code  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| hessian_approxi | OT_STRING       | "exact"         | gauss-          |
+>| mation          |                 |                 | newton|exact    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| lbfgs_memory    | OT_INTEGER      | 10              | Size of L-BFGS  |
+>|                 |                 |                 | memory.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_iter        | OT_INTEGER      | 50              | Maximum number  |
+>|                 |                 |                 | of SQP          |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_iter_ls     | OT_INTEGER      | 1               | Maximum number  |
+>|                 |                 |                 | of linesearch   |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| merit_memsize   | OT_INTEGER      | 4               | Size of memory  |
+>|                 |                 |                 | to store        |
+>|                 |                 |                 | history of      |
+>|                 |                 |                 | merit function  |
+>|                 |                 |                 | values          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| merit_start     | OT_REAL         | 0.000           | Lower bound for |
+>|                 |                 |                 | the merit       |
+>|                 |                 |                 | function        |
+>|                 |                 |                 | parameter       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| name_x          | OT_STRINGVECTOR | GenericType()   | Names of the    |
+>|                 |                 |                 | variables.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_header    | OT_BOOLEAN      | true            | Print the       |
+>|                 |                 |                 | header with     |
+>|                 |                 |                 | problem         |
+>|                 |                 |                 | statistics      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_time      | OT_BOOLEAN      | true            | Print           |
+>|                 |                 |                 | information     |
+>|                 |                 |                 | about execution |
+>|                 |                 |                 | time            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_x         | OT_INTEGERVECTO | GenericType()   | Which variables |
+>|                 | R               |                 | to print.       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_solver       | OT_STRING       | GenericType()   | The QP solver   |
+>|                 |                 |                 | to be used by   |
+>|                 |                 |                 | the SQP method  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_solver_optio | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ns              |                 |                 | passed to the   |
+>|                 |                 |                 | QP solver       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| reg_threshold   | OT_REAL         | 0.000           | Threshold for   |
+>|                 |                 |                 | the             |
+>|                 |                 |                 | regularization. |
+>+-----------------+-----------------+-----------------+-----------------+
+>| regularize      | OT_BOOLEAN      | false           | Automatic       |
+>|                 |                 |                 | regularization  |
+>|                 |                 |                 | of Lagrange     |
+>|                 |                 |                 | Hessian.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tol_du          | OT_REAL         | 0.000           | Stopping        |
+>|                 |                 |                 | criterion for   |
+>|                 |                 |                 | dual            |
+>|                 |                 |                 | infeasability   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tol_pr          | OT_REAL         | 0.000           | Stopping        |
+>|                 |                 |                 | criterion for   |
+>|                 |                 |                 | primal          |
+>|                 |                 |                 | infeasibility   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tol_pr_step     | OT_REAL         | 0.000           | Stopping        |
+>|                 |                 |                 | criterion for   |
+>|                 |                 |                 | the step size   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tol_reg         | OT_REAL         | 0.000           | Stopping        |
+>|                 |                 |                 | criterion for   |
+>|                 |                 |                 | regularization  |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available monitors
+>+-------------+
+>|     Id      |
+>+=============+
+>| dx          |
+>+-------------+
+>| eval_f      |
+>+-------------+
+>| eval_g      |
+>+-------------+
+>| eval_grad_f |
+>+-------------+
+>| eval_h      |
+>+-------------+
+>| eval_jac_g  |
+>+-------------+
+>| qp          |
+>+-------------+
+>
+>>List of available stats
+>+------------+
+>|     Id     |
+>+============+
+>| iter_count |
+>+------------+
+>
+>sqpmethod
+>
+>A textbook SQPMethod
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| beta            | OT_REAL         | 0.800           | Line-search     |
+>|                 |                 |                 | parameter,      |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | factor of       |
+>|                 |                 |                 | stepsize        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| c1              | OT_REAL         | 0.000           | Armijo          |
+>|                 |                 |                 | condition,      |
+>|                 |                 |                 | coefficient of  |
+>|                 |                 |                 | decrease in     |
+>|                 |                 |                 | merit           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| hessian_approxi | OT_STRING       | "exact"         | limited-        |
+>| mation          |                 |                 | memory|exact    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| lbfgs_memory    | OT_INTEGER      | 10              | Size of L-BFGS  |
+>|                 |                 |                 | memory.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_iter        | OT_INTEGER      | 50              | Maximum number  |
+>|                 |                 |                 | of SQP          |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_iter_ls     | OT_INTEGER      | 3               | Maximum number  |
+>|                 |                 |                 | of linesearch   |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| merit_memory    | OT_INTEGER      | 4               | Size of memory  |
+>|                 |                 |                 | to store        |
+>|                 |                 |                 | history of      |
+>|                 |                 |                 | merit function  |
+>|                 |                 |                 | values          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| min_step_size   | OT_REAL         | 0.000           | The size (inf-  |
+>|                 |                 |                 | norm) of the    |
+>|                 |                 |                 | step size       |
+>|                 |                 |                 | should not      |
+>|                 |                 |                 | become smaller  |
+>|                 |                 |                 | than this.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_header    | OT_BOOLEAN      | true            | Print the       |
+>|                 |                 |                 | header with     |
+>|                 |                 |                 | problem         |
+>|                 |                 |                 | statistics      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_time      | OT_BOOLEAN      | true            | Print           |
+>|                 |                 |                 | information     |
+>|                 |                 |                 | about execution |
+>|                 |                 |                 | time            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_solver       | OT_STRING       | GenericType()   | The QP solver   |
+>|                 |                 |                 | to be used by   |
+>|                 |                 |                 | the SQP method  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_solver_optio | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ns              |                 |                 | passed to the   |
+>|                 |                 |                 | QP solver       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| regularize      | OT_BOOLEAN      | false           | Automatic       |
+>|                 |                 |                 | regularization  |
+>|                 |                 |                 | of Lagrange     |
+>|                 |                 |                 | Hessian.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tol_du          | OT_REAL         | 0.000           | Stopping        |
+>|                 |                 |                 | criterion for   |
+>|                 |                 |                 | dual            |
+>|                 |                 |                 | infeasability   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tol_pr          | OT_REAL         | 0.000           | Stopping        |
+>|                 |                 |                 | criterion for   |
+>|                 |                 |                 | primal          |
+>|                 |                 |                 | infeasibility   |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available monitors
+>+-------------+
+>|     Id      |
+>+=============+
+>| bfgs        |
+>+-------------+
+>| dx          |
+>+-------------+
+>| eval_f      |
+>+-------------+
+>| eval_g      |
+>+-------------+
+>| eval_grad_f |
+>+-------------+
+>| eval_h      |
+>+-------------+
+>| eval_jac_g  |
+>+-------------+
+>| qp          |
+>+-------------+
+>
+>>List of available stats
+>+--------------------+
+>|         Id         |
+>+====================+
+>| iter_count         |
+>+--------------------+
+>| iteration          |
+>+--------------------+
+>| iterations         |
+>+--------------------+
+>| n_eval_f           |
+>+--------------------+
+>| n_eval_g           |
+>+--------------------+
+>| n_eval_grad_f      |
+>+--------------------+
+>| n_eval_h           |
+>+--------------------+
+>| n_eval_jac_g       |
+>+--------------------+
+>| return_status      |
+>+--------------------+
+>| t_callback_fun     |
+>+--------------------+
+>| t_callback_prepare |
+>+--------------------+
+>| t_eval_f           |
+>+--------------------+
+>| t_eval_g           |
+>+--------------------+
+>| t_eval_grad_f      |
+>+--------------------+
+>| t_eval_h           |
+>+--------------------+
+>| t_eval_jac_g       |
+>+--------------------+
+>| t_mainloop         |
+>+--------------------+
+>
+>stabilizedsqp
+>
+>Stabilized Sequential Quadratic Programming method.
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| TReta1          | OT_REAL         | 0.800           | Required        |
+>|                 |                 |                 | predicted /     |
+>|                 |                 |                 | actual decrease |
+>|                 |                 |                 | for TR increase |
+>+-----------------+-----------------+-----------------+-----------------+
+>| TReta2          | OT_REAL         | 0.200           | Required        |
+>|                 |                 |                 | predicted /     |
+>|                 |                 |                 | actual decrease |
+>|                 |                 |                 | for TR decrease |
+>+-----------------+-----------------+-----------------+-----------------+
+>| alphaMin        | OT_REAL         | 0.001           | Used to check   |
+>|                 |                 |                 | whether to      |
+>|                 |                 |                 | increase rho.   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| beta            | OT_REAL         | 0.500           | Line-search     |
+>|                 |                 |                 | parameter,      |
+>|                 |                 |                 | restoration     |
+>|                 |                 |                 | factor of       |
+>|                 |                 |                 | stepsize        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| c1              | OT_REAL         | 0.001           | Armijo          |
+>|                 |                 |                 | condition,      |
+>|                 |                 |                 | coefficient of  |
+>|                 |                 |                 | decrease in     |
+>|                 |                 |                 | merit           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| dvMax0          | OT_REAL         | 100             | Parameter used  |
+>|                 |                 |                 | to defined the  |
+>|                 |                 |                 | max step        |
+>|                 |                 |                 | length.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| eps_active      | OT_REAL         | 0.000           | Threshold for   |
+>|                 |                 |                 | the epsilon-    |
+>|                 |                 |                 | active set.     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| gamma1          | OT_REAL         | 2               | Trust region    |
+>|                 |                 |                 | increase        |
+>|                 |                 |                 | parameter       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| gamma2          | OT_REAL         | 1               | Trust region    |
+>|                 |                 |                 | update          |
+>|                 |                 |                 | parameter       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| gamma3          | OT_REAL         | 1               | Trust region    |
+>|                 |                 |                 | decrease        |
+>|                 |                 |                 | parameter       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| hessian_approxi | OT_STRING       | "exact"         | limited-        |
+>| mation          |                 |                 | memory|exact    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| lbfgs_memory    | OT_INTEGER      | 10              | Size of L-BFGS  |
+>|                 |                 |                 | memory.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_iter        | OT_INTEGER      | 100             | Maximum number  |
+>|                 |                 |                 | of SQP          |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_iter_ls     | OT_INTEGER      | 20              | Maximum number  |
+>|                 |                 |                 | of linesearch   |
+>|                 |                 |                 | iterations      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| max_time        | OT_REAL         | 1.000e+12       | Timeout         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| merit_memory    | OT_INTEGER      | 4               | Size of memory  |
+>|                 |                 |                 | to store        |
+>|                 |                 |                 | history of      |
+>|                 |                 |                 | merit function  |
+>|                 |                 |                 | values          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| min_step_size   | OT_REAL         | 0.000           | The size (inf-  |
+>|                 |                 |                 | norm) of the    |
+>|                 |                 |                 | step size       |
+>|                 |                 |                 | should not      |
+>|                 |                 |                 | become smaller  |
+>|                 |                 |                 | than this.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| muR0            | OT_REAL         | 0.000           | Initial choice  |
+>|                 |                 |                 | of              |
+>|                 |                 |                 | regularization  |
+>|                 |                 |                 | parameter       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nu              | OT_REAL         | 1               | Parameter for   |
+>|                 |                 |                 | primal-dual     |
+>|                 |                 |                 | augmented       |
+>|                 |                 |                 | Lagrangian.     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| phiWeight       | OT_REAL         | 0.000           | Weight used in  |
+>|                 |                 |                 | pseudo-filter.  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_header    | OT_BOOLEAN      | true            | Print the       |
+>|                 |                 |                 | header with     |
+>|                 |                 |                 | problem         |
+>|                 |                 |                 | statistics      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| regularize      | OT_BOOLEAN      | false           | Automatic       |
+>|                 |                 |                 | regularization  |
+>|                 |                 |                 | of Lagrange     |
+>|                 |                 |                 | Hessian.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| stabilized_qp_s | OT_STRING       | GenericType()   | The Stabilized  |
+>| olver           |                 |                 | QP solver to be |
+>|                 |                 |                 | used by the SQP |
+>|                 |                 |                 | method          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| stabilized_qp_s | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| olver_options   |                 |                 | passed to the   |
+>|                 |                 |                 | Stabilized QP   |
+>|                 |                 |                 | solver          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tau0            | OT_REAL         | 0.010           | Initial         |
+>|                 |                 |                 | parameter for   |
+>|                 |                 |                 | the merit       |
+>|                 |                 |                 | function        |
+>|                 |                 |                 | optimality      |
+>|                 |                 |                 | threshold.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tol_du          | OT_REAL         | 0.000           | Stopping        |
+>|                 |                 |                 | criterion for   |
+>|                 |                 |                 | dual            |
+>|                 |                 |                 | infeasability   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tol_pr          | OT_REAL         | 0.000           | Stopping        |
+>|                 |                 |                 | criterion for   |
+>|                 |                 |                 | primal          |
+>|                 |                 |                 | infeasibility   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| yEinitial       | OT_STRING       | "simple"        | Initial         |
+>|                 |                 |                 | multiplier.     |
+>|                 |                 |                 | Simple (all     |
+>|                 |                 |                 | zero) or least  |
+>|                 |                 |                 | (LSQ).          |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available monitors
+>+-------------+
+>|     Id      |
+>+=============+
+>| dx          |
+>+-------------+
+>| eval_f      |
+>+-------------+
+>| eval_g      |
+>+-------------+
+>| eval_grad_f |
+>+-------------+
+>| eval_h      |
+>+-------------+
+>| eval_jac_g  |
+>+-------------+
+>| qp          |
+>+-------------+
+>
+>>List of available stats
+>+---------------+
+>|      Id       |
+>+===============+
+>| iter_count    |
+>+---------------+
+>| return_status |
+>+---------------+
+>
+>Joel Andersson Diagrams
+>
+>C++ includes: nlp_solver.hpp 
+-}
+newtype NlpSolver = NlpSolver (ForeignPtr NlpSolver')
+-- typeclass decl
+class NlpSolverClass a where
+  castNlpSolver :: a -> NlpSolver
+instance NlpSolverClass NlpSolver where
+  castNlpSolver = id
+
+-- baseclass instances
+instance FunctionClass NlpSolver where
+  castFunction (NlpSolver x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass NlpSolver where
+  castOptionsFunctionality (NlpSolver x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass NlpSolver where
+  castPrintableObject (NlpSolver x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass NlpSolver where
+  castSharedObject (NlpSolver x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass NlpSolver where
+  castIOInterfaceFunction (NlpSolver x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal NlpSolver (Ptr NlpSolver') where
+  marshal (NlpSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (NlpSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__NlpSolver" 
+  c_delete_casadi__NlpSolver :: FunPtr (Ptr NlpSolver' -> IO ())
+instance WrapReturn (Ptr NlpSolver') NlpSolver where
+  wrapReturn = (fmap NlpSolver) . (newForeignPtr c_delete_casadi__NlpSolver)
+
+
+-- raw decl
+data Nullspace'
+-- data decl
+{-|
+>Base class for nullspace construction.
+>
+>Constructs a basis for the null-space of a fat matrix A. i.e. finds Z such
+>that AZ = 0 holds.
+>
+>The nullspace is also known as the orthogonal complement of the rowspace of
+>a matrix.
+>
+>It is assumed that the matrix A is of full rank.
+>
+>Implementations are not required to construct an orthogonal or orthonormal
+>basis Joris Gillis
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| dense        | OT_BOOLEAN   | true         | Indicates    | casadi::Null |
+>|              |              |              | that dense   | spaceInterna |
+>|              |              |              | matrices can | l            |
+>|              |              |              | be assumed   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>Diagrams
+>
+>C++ includes: nullspace.hpp 
+-}
+newtype Nullspace = Nullspace (ForeignPtr Nullspace')
+-- typeclass decl
+class NullspaceClass a where
+  castNullspace :: a -> Nullspace
+instance NullspaceClass Nullspace where
+  castNullspace = id
+
+-- baseclass instances
+instance FunctionClass Nullspace where
+  castFunction (Nullspace x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass Nullspace where
+  castOptionsFunctionality (Nullspace x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass Nullspace where
+  castPrintableObject (Nullspace x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass Nullspace where
+  castSharedObject (Nullspace x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass Nullspace where
+  castIOInterfaceFunction (Nullspace x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal Nullspace (Ptr Nullspace') where
+  marshal (Nullspace x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (Nullspace x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__Nullspace" 
+  c_delete_casadi__Nullspace :: FunPtr (Ptr Nullspace' -> IO ())
+instance WrapReturn (Ptr Nullspace') Nullspace where
+  wrapReturn = (fmap Nullspace) . (newForeignPtr c_delete_casadi__Nullspace)
+
+
+-- raw decl
+data OCPSolver'
+-- data decl
+{-|
+>Base class for OCP solvers.
+>
+>Joel Andersson
+>
+>>Input scheme: casadi::OCPInput (OCP_NUM_IN = 13) [ocpIn]
+>+------------+--------+----------------------------------------------+
+>| Full name  | Short  |                 Description                  |
+>+============+========+==============================================+
+>| OCP_LBX    | lbx    | States lower bounds (nx x (ns+1)) .          |
+>+------------+--------+----------------------------------------------+
+>| OCP_UBX    | ubx    | States upper bounds (nx x (ns+1)) .          |
+>+------------+--------+----------------------------------------------+
+>| OCP_X_INIT | x_init | States initial guess (nx x (ns+1)) .         |
+>+------------+--------+----------------------------------------------+
+>| OCP_LBU    | lbu    | Controls lower bounds (nu x ns) .            |
+>+------------+--------+----------------------------------------------+
+>| OCP_UBU    | ubu    | Controls upper bounds (nu x ns) .            |
+>+------------+--------+----------------------------------------------+
+>| OCP_U_INIT | u_init | Controls initial guess (nu x ns) .           |
+>+------------+--------+----------------------------------------------+
+>| OCP_LBP    | lbp    | Parameters lower bounds (np x 1) .           |
+>+------------+--------+----------------------------------------------+
+>| OCP_UBP    | ubp    | Parameters upper bounds (np x 1) .           |
+>+------------+--------+----------------------------------------------+
+>| OCP_P_INIT | p_init | Parameters initial guess (np x 1) .          |
+>+------------+--------+----------------------------------------------+
+>| OCP_LBH    | lbh    | Point constraint lower bound (nh x (ns+1)) . |
+>+------------+--------+----------------------------------------------+
+>| OCP_UBH    | ubh    | Point constraint upper bound (nh x (ns+1)) . |
+>+------------+--------+----------------------------------------------+
+>| OCP_LBG    | lbg    | Lower bound for the coupling constraints .   |
+>+------------+--------+----------------------------------------------+
+>| OCP_UBG    | ubg    | Upper bound for the coupling constraints .   |
+>+------------+--------+----------------------------------------------+
+>
+>>Output scheme: casadi::OCPOutput (OCP_NUM_OUT = 4) [ocpOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| OCP_X_OPT              | x_opt                  | Optimal state          |
+>|                        |                        | trajectory .           |
+>+------------------------+------------------------+------------------------+
+>| OCP_U_OPT              | u_opt                  | Optimal control        |
+>|                        |                        | trajectory .           |
+>+------------------------+------------------------+------------------------+
+>| OCP_P_OPT              | p_opt                  | Optimal parameters .   |
+>+------------------------+------------------------+------------------------+
+>| OCP_COST               | cost                   | Objective/cost         |
+>|                        |                        | function for optimal   |
+>|                        |                        | solution (1 x 1) .     |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| final_time   | OT_REAL      | 1            |              | casadi::OCPS |
+>|              |              |              |              | olverInterna |
+>|              |              |              |              | l            |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| number_of_gr | OT_INTEGER   | 20           |              | casadi::OCPS |
+>| id_points    |              |              |              | olverInterna |
+>|              |              |              |              | l            |
+>+--------------+--------------+--------------+--------------+--------------+
+>| number_of_pa | OT_INTEGER   | 0            |              | casadi::OCPS |
+>| rameters     |              |              |              | olverInterna |
+>|              |              |              |              | l            |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>Diagrams
+>
+>C++ includes: ocp_solver.hpp 
+-}
+newtype OCPSolver = OCPSolver (ForeignPtr OCPSolver')
+-- typeclass decl
+class OCPSolverClass a where
+  castOCPSolver :: a -> OCPSolver
+instance OCPSolverClass OCPSolver where
+  castOCPSolver = id
+
+-- baseclass instances
+instance FunctionClass OCPSolver where
+  castFunction (OCPSolver x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass OCPSolver where
+  castOptionsFunctionality (OCPSolver x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass OCPSolver where
+  castPrintableObject (OCPSolver x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass OCPSolver where
+  castSharedObject (OCPSolver x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass OCPSolver where
+  castIOInterfaceFunction (OCPSolver x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal OCPSolver (Ptr OCPSolver') where
+  marshal (OCPSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (OCPSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__OCPSolver" 
+  c_delete_casadi__OCPSolver :: FunPtr (Ptr OCPSolver' -> IO ())
+instance WrapReturn (Ptr OCPSolver') OCPSolver where
+  wrapReturn = (fmap OCPSolver) . (newForeignPtr c_delete_casadi__OCPSolver)
+
+
+-- raw decl
+data OptionsFunctionality'
+-- data decl
+{-|
+>Provides options setting/getting functionality.
+>
+>Gives a derived class the ability to set and retrieve options in a
+>convenient way. It also contains error checking, making sure that the option
+>exists and that the value type is correct.
+>
+>A derived class should add option names, types and default values to the
+>corresponding vectors.
+>
+>Joel Andersson
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>Diagrams
+>
+>C++ includes: options_functionality.hpp 
+-}
+newtype OptionsFunctionality = OptionsFunctionality (ForeignPtr OptionsFunctionality')
+-- typeclass decl
+class OptionsFunctionalityClass a where
+  castOptionsFunctionality :: a -> OptionsFunctionality
+instance OptionsFunctionalityClass OptionsFunctionality where
+  castOptionsFunctionality = id
+
+-- baseclass instances
+instance PrintableObjectClass OptionsFunctionality where
+  castPrintableObject (OptionsFunctionality x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass OptionsFunctionality where
+  castSharedObject (OptionsFunctionality x) = SharedObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal OptionsFunctionality (Ptr OptionsFunctionality') where
+  marshal (OptionsFunctionality x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (OptionsFunctionality x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__OptionsFunctionality" 
+  c_delete_casadi__OptionsFunctionality :: FunPtr (Ptr OptionsFunctionality' -> IO ())
+instance WrapReturn (Ptr OptionsFunctionality') OptionsFunctionality where
+  wrapReturn = (fmap OptionsFunctionality) . (newForeignPtr c_delete_casadi__OptionsFunctionality)
+
+
+-- raw decl
+data Parallelizer'
+-- data decl
+{-|
+>Parallelizer execution of functions.
+>
+>Joel Andersson
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| parallelizat | OT_STRING    | "serial"     | (serial|open | casadi::Para |
+>| ion          |              |              | mp|mpi)      | llelizerInte |
+>|              |              |              |              | rnal         |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>>List of available stats
+>+-----------------+------------------------------+
+>|       Id        |           Used in            |
+>+=================+==============================+
+>| max_threads     | casadi::ParallelizerInternal |
+>+-----------------+------------------------------+
+>| num_threads     | casadi::ParallelizerInternal |
+>+-----------------+------------------------------+
+>| task_allocation | casadi::ParallelizerInternal |
+>+-----------------+------------------------------+
+>| task_cputime    | casadi::ParallelizerInternal |
+>+-----------------+------------------------------+
+>| task_endtime    | casadi::ParallelizerInternal |
+>+-----------------+------------------------------+
+>| task_order      | casadi::ParallelizerInternal |
+>+-----------------+------------------------------+
+>| task_starttime  | casadi::ParallelizerInternal |
+>+-----------------+------------------------------+
+>
+>Diagrams
+>
+>C++ includes: parallelizer.hpp 
+-}
+newtype Parallelizer = Parallelizer (ForeignPtr Parallelizer')
+-- typeclass decl
+class ParallelizerClass a where
+  castParallelizer :: a -> Parallelizer
+instance ParallelizerClass Parallelizer where
+  castParallelizer = id
+
+-- baseclass instances
+instance FunctionClass Parallelizer where
+  castFunction (Parallelizer x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass Parallelizer where
+  castOptionsFunctionality (Parallelizer x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass Parallelizer where
+  castPrintableObject (Parallelizer x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass Parallelizer where
+  castSharedObject (Parallelizer x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass Parallelizer where
+  castIOInterfaceFunction (Parallelizer x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal Parallelizer (Ptr Parallelizer') where
+  marshal (Parallelizer x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (Parallelizer x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__Parallelizer" 
+  c_delete_casadi__Parallelizer :: FunPtr (Ptr Parallelizer' -> IO ())
+instance WrapReturn (Ptr Parallelizer') Parallelizer where
+  wrapReturn = (fmap Parallelizer) . (newForeignPtr c_delete_casadi__Parallelizer)
+
+
+-- raw decl
+data PrintableObject'
+-- data decl
+{-|
+>Base class for objects that have a natural string representation.
+>
+>Joel Andersson
+>
+>C++ includes: printable_object.hpp 
+-}
+newtype PrintableObject = PrintableObject (ForeignPtr PrintableObject')
+-- typeclass decl
+class PrintableObjectClass a where
+  castPrintableObject :: a -> PrintableObject
+instance PrintableObjectClass PrintableObject where
+  castPrintableObject = id
+
+-- baseclass instances
+
+-- helper instances
+instance Marshal PrintableObject (Ptr PrintableObject') where
+  marshal (PrintableObject x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (PrintableObject x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__PrintableObject" 
+  c_delete_casadi__PrintableObject :: FunPtr (Ptr PrintableObject' -> IO ())
+instance WrapReturn (Ptr PrintableObject') PrintableObject where
+  wrapReturn = (fmap PrintableObject) . (newForeignPtr c_delete_casadi__PrintableObject)
+
+
+-- raw decl
+data QcqpSolver'
+-- data decl
+{-|
+>QcqpSolver.
+>
+>Solves the following strictly convex problem:
+>
+>min          1/2 x' H x + g' x x  subject to 1/2 x' Pi x  +  qi' x + ri  <=
+>0   for i=0..nq-1 LBA <= A x <= UBA LBX <= x   <= UBX  with : H, Pi sparse
+>(n x n) positive definite g, qi dense  (n x 1) ri scalar n: number of
+>decision variables (x) nc: number of linear constraints (A) nq: number of
+>quadratic constraints
+>
+>If H, Pi is not positive-definite, the solver should throw an error.
+>
+>General information
+>
+>>Input scheme: casadi::QcqpSolverInput (QCQP_SOLVER_NUM_IN = 12) [qcqpIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| QCQP_SOLVER_H          | h                      | The square matrix H:   |
+>|                        |                        | sparse, (n x n). Only  |
+>|                        |                        | the lower triangular   |
+>|                        |                        | part is actually used. |
+>|                        |                        | The matrix is assumed  |
+>|                        |                        | to be symmetrical.     |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_G          | g                      | The vector g: dense,   |
+>|                        |                        | (n x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_P          | p                      | The horizontal stack   |
+>|                        |                        | of all Pi. Each Pi is  |
+>|                        |                        | sparse (n x n). Only   |
+>|                        |                        | the lower triangular   |
+>|                        |                        | part is actually used. |
+>|                        |                        | The matrix is assumed  |
+>|                        |                        | to be symmetrical.     |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_Q          | q                      | The vertical stack of  |
+>|                        |                        | all qi: dense, (nq n x |
+>|                        |                        | 1) .                   |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_R          | r                      | The vertical stack of  |
+>|                        |                        | all scalars ri (nq x   |
+>|                        |                        | 1) .                   |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_A          | a                      | The matrix A: sparse,  |
+>|                        |                        | (nc x n) - product     |
+>|                        |                        | with x must be dense.  |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_LBA        | lba                    | dense, (nc x 1)        |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_UBA        | uba                    | dense, (nc x 1)        |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_LBX        | lbx                    | dense, (n x 1)         |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_UBX        | ubx                    | dense, (n x 1)         |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_X0         | x0                     | dense, (n x 1)         |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_LAM_X0     | lam_x0                 | dense                  |
+>+------------------------+------------------------+------------------------+
+>
+>>Output scheme: casadi::QcqpSolverOutput (QCQP_SOLVER_NUM_OUT = 4) [qcqpOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| QCQP_SOLVER_X          | x                      | The primal solution .  |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_COST       | cost                   | The optimal cost .     |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_LAM_A      | lam_a                  | The dual solution      |
+>|                        |                        | corresponding to       |
+>|                        |                        | linear bounds .        |
+>+------------------------+------------------------+------------------------+
+>| QCQP_SOLVER_LAM_X      | lam_x                  | The dual solution      |
+>|                        |                        | corresponding to       |
+>|                        |                        | simple bounds .        |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_QcqpSolver_socp'>socp</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>QcqpSolver.doc("myextraplugin")
+>
+>socp
+>
+>Solve a QCQP with an SocpSolver
+>
+>Note: this implementation relies on Cholesky decomposition: Chol(H) = L -> H
+>= LL' with L lower triangular This requires Pi, H to be positive definite.
+>Positive semi-definite is not sufficient. Notably, H==0 will not work.
+>
+>A better implementation would rely on matrix square root, but we need
+>singular value decomposition to implement that.
+>
+>This implementation makes use of the epigraph reformulation:*  min f(x) *
+>x * *   min  t *    x, t  f(x) <= t *
+>
+>This implementation makes use of the following identity:*  || Gx+h||_2 <=
+>e'x + f * *  x'(G'G - ee')x + (2 h'G - 2 f e') x + h'h - f <= 0 * where we
+>put e = [0 0 ... 1] for the quadratic constraint arising from the epigraph
+>reformulation and e==0 for all other quadratic constraints.
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| socp_solver     | OT_STRING       | GenericType()   | The SocpSolver  |
+>|                 |                 |                 | used to solve   |
+>|                 |                 |                 | the QCQPs.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| socp_solver_opt | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ions            |                 |                 | passed to the   |
+>|                 |                 |                 | SOCPSOlver      |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available stats
+>+-------------------+
+>|        Id         |
+>+===================+
+>| socp_solver_stats |
+>+-------------------+
+>
+>Joris Gillis Diagrams
+>
+>C++ includes: qcqp_solver.hpp 
+-}
+newtype QcqpSolver = QcqpSolver (ForeignPtr QcqpSolver')
+-- typeclass decl
+class QcqpSolverClass a where
+  castQcqpSolver :: a -> QcqpSolver
+instance QcqpSolverClass QcqpSolver where
+  castQcqpSolver = id
+
+-- baseclass instances
+instance FunctionClass QcqpSolver where
+  castFunction (QcqpSolver x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass QcqpSolver where
+  castOptionsFunctionality (QcqpSolver x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass QcqpSolver where
+  castPrintableObject (QcqpSolver x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass QcqpSolver where
+  castSharedObject (QcqpSolver x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass QcqpSolver where
+  castIOInterfaceFunction (QcqpSolver x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal QcqpSolver (Ptr QcqpSolver') where
+  marshal (QcqpSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (QcqpSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__QcqpSolver" 
+  c_delete_casadi__QcqpSolver :: FunPtr (Ptr QcqpSolver' -> IO ())
+instance WrapReturn (Ptr QcqpSolver') QcqpSolver where
+  wrapReturn = (fmap QcqpSolver) . (newForeignPtr c_delete_casadi__QcqpSolver)
+
+
+-- raw decl
+data QpSolver'
+-- data decl
+{-|
+>QpSolver.
+>
+>Solves the following strictly convex problem:
+>
+>min          1/2 x' H x + g' x  x  subject to             LBA <= A x <= UBA
+>LBX <= x   <= UBX      with :       H sparse (n x n) positive definite
+>g dense  (n x 1)      n: number of decision variables (x)     nc: number of
+>constraints (A)
+>
+>If H is not positive-definite, the solver should throw an error.
+>
+>General information
+>
+>>Input scheme: casadi::QpSolverInput (QP_SOLVER_NUM_IN = 9) [qpIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| QP_SOLVER_H            | h                      | The square matrix H:   |
+>|                        |                        | sparse, (n x n). Only  |
+>|                        |                        | the lower triangular   |
+>|                        |                        | part is actually used. |
+>|                        |                        | The matrix is assumed  |
+>|                        |                        | to be symmetrical.     |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_G            | g                      | The vector g: dense,   |
+>|                        |                        | (n x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_A            | a                      | The matrix A: sparse,  |
+>|                        |                        | (nc x n) - product     |
+>|                        |                        | with x must be dense.  |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_LBA          | lba                    | dense, (nc x 1)        |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_UBA          | uba                    | dense, (nc x 1)        |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_LBX          | lbx                    | dense, (n x 1)         |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_UBX          | ubx                    | dense, (n x 1)         |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_X0           | x0                     | dense, (n x 1)         |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_LAM_X0       | lam_x0                 | dense                  |
+>+------------------------+------------------------+------------------------+
+>
+>>Output scheme: casadi::QpSolverOutput (QP_SOLVER_NUM_OUT = 4) [qpOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| QP_SOLVER_X            | x                      | The primal solution .  |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_COST         | cost                   | The optimal cost .     |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_LAM_A        | lam_a                  | The dual solution      |
+>|                        |                        | corresponding to       |
+>|                        |                        | linear bounds .        |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_LAM_X        | lam_x                  | The dual solution      |
+>|                        |                        | corresponding to       |
+>|                        |                        | simple bounds .        |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_QpSolver_cplex'>cplex</a>
+>
+>- <a href='#plugin_QpSolver_ooqp'>ooqp</a>
+>
+>- <a href='#plugin_QpSolver_qpoases'>qpoases</a>
+>
+>- <a href='#plugin_QpSolver_sqic'>sqic</a>
+>
+>- <a href='#plugin_QpSolver_nlp'>nlp</a>
+>
+>- <a href='#plugin_QpSolver_qcqp'>qcqp</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>QpSolver.doc("myextraplugin")
+>
+>cplex
+>
+>Interface to Cplex solver for sparse Quadratic Programs
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| barrier_maxiter | OT_INTEGER      | 2.100e+09       | Maximum number  |
+>|                 |                 |                 | of barrier      |
+>|                 |                 |                 | iterations.     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| convex          | OT_BOOLEAN      | true            | Indicates if    |
+>|                 |                 |                 | the QP is       |
+>|                 |                 |                 | convex or not   |
+>|                 |                 |                 | (affects only   |
+>|                 |                 |                 | the barrier     |
+>|                 |                 |                 | method).        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| dep_check       | OT_STRING       | "off"           | Detect          |
+>|                 |                 |                 | redundant       |
+>|                 |                 |                 | constraints. (a |
+>|                 |                 |                 | utomatic:-1|off |
+>|                 |                 |                 | :0|begin:1|end: |
+>|                 |                 |                 | 2|both:3)       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| dump_filename   | OT_STRING       | "qp.dat"        | The filename to |
+>|                 |                 |                 | dump to.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| dump_to_file    | OT_BOOLEAN      | false           | Dumps QP to     |
+>|                 |                 |                 | file in CPLEX   |
+>|                 |                 |                 | format.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_method       | OT_STRING       | "automatic"     | Determines      |
+>|                 |                 |                 | which CPLEX     |
+>|                 |                 |                 | algorithm to    |
+>|                 |                 |                 | use. (automatic |
+>|                 |                 |                 | |primal_simplex |
+>|                 |                 |                 | |dual_simplex|n |
+>|                 |                 |                 | etwork|barrier| |
+>|                 |                 |                 | sifting|concurr |
+>|                 |                 |                 | ent|crossover)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| simplex_maxiter | OT_INTEGER      | 2.100e+09       | Maximum number  |
+>|                 |                 |                 | of simplex      |
+>|                 |                 |                 | iterations.     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| tol             | OT_REAL         | 0.000           | Tolerance of    |
+>|                 |                 |                 | solver          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| warm_start      | OT_BOOLEAN      | false           | Use warm start  |
+>|                 |                 |                 | with simplex    |
+>|                 |                 |                 | methods         |
+>|                 |                 |                 | (affects only   |
+>|                 |                 |                 | the simplex     |
+>|                 |                 |                 | methods).       |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>ooqp
+>
+>Interface to the OOQP Solver for quadratic programming The current
+>implementation assumes that OOQP is configured with the MA27 sparse linear
+>solver.
+>
+>NOTE: when doing multiple calls to evaluate(), check if you need to
+>reInit();
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| artol           | OT_REAL         | 0.000           | tolerance as    |
+>|                 |                 |                 | provided with   |
+>|                 |                 |                 | setArTol to     |
+>|                 |                 |                 | OOQP            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| mutol           | OT_REAL         | 0.000           | tolerance as    |
+>|                 |                 |                 | provided with   |
+>|                 |                 |                 | setMuTol to     |
+>|                 |                 |                 | OOQP            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| print_level     | OT_INTEGER      | 0               | Print level.    |
+>|                 |                 |                 | OOQP listens to |
+>|                 |                 |                 | print_level 0,  |
+>|                 |                 |                 | 10 and 100      |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>qpoases
+>
+>Interface to QPOases Solver for quadratic programming
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| CPUtime         | OT_REAL         | None            | The maximum     |
+>|                 |                 |                 | allowed CPU     |
+>|                 |                 |                 | time in seconds |
+>|                 |                 |                 | for the whole   |
+>|                 |                 |                 | initialisation  |
+>|                 |                 |                 | (and the        |
+>|                 |                 |                 | actually        |
+>|                 |                 |                 | required one on |
+>|                 |                 |                 | output).        |
+>|                 |                 |                 | Disabled if     |
+>|                 |                 |                 | unset.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| boundRelaxation | OT_REAL         | 10000           | Initial         |
+>|                 |                 |                 | relaxation of   |
+>|                 |                 |                 | bounds to start |
+>|                 |                 |                 | homotopy and    |
+>|                 |                 |                 | initial value   |
+>|                 |                 |                 | for far bounds. |
+>+-----------------+-----------------+-----------------+-----------------+
+>| boundTolerance  | OT_REAL         | 0.000           | If upper and    |
+>|                 |                 |                 | lower bounds    |
+>|                 |                 |                 | differ less     |
+>|                 |                 |                 | than this       |
+>|                 |                 |                 | tolerance, they |
+>|                 |                 |                 | are regarded    |
+>|                 |                 |                 | equal, i.e. as  |
+>|                 |                 |                 | equality        |
+>|                 |                 |                 | constraint.     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| enableCholeskyR | OT_INTEGER      | 0               | Specifies the   |
+>| efactorisation  |                 |                 | frequency of a  |
+>|                 |                 |                 | full re-        |
+>|                 |                 |                 | factorisation   |
+>|                 |                 |                 | of projected    |
+>|                 |                 |                 | Hessian matrix: |
+>|                 |                 |                 | 0: turns them   |
+>|                 |                 |                 | off, 1: uses    |
+>|                 |                 |                 | them at each    |
+>|                 |                 |                 | iteration etc.  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| enableDriftCorr | OT_INTEGER      | 1               | Specifies the   |
+>| ection          |                 |                 | frequency of    |
+>|                 |                 |                 | drift           |
+>|                 |                 |                 | corrections: 0: |
+>|                 |                 |                 | turns them off. |
+>+-----------------+-----------------+-----------------+-----------------+
+>| enableEqualitie | OT_BOOLEAN      | False           | Specifies       |
+>| s               |                 |                 | whether         |
+>|                 |                 |                 | equalities      |
+>|                 |                 |                 | should be       |
+>|                 |                 |                 | treated as      |
+>|                 |                 |                 | always active   |
+>|                 |                 |                 | (True) or not   |
+>|                 |                 |                 | (False)         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| enableFarBounds | OT_BOOLEAN      | True            | Enables the use |
+>|                 |                 |                 | of far bounds.  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| enableFlippingB | OT_BOOLEAN      | True            | Enables the use |
+>| ounds           |                 |                 | of flipping     |
+>|                 |                 |                 | bounds.         |
+>+-----------------+-----------------+-----------------+-----------------+
+>| enableFullLITes | OT_BOOLEAN      | False           | Enables         |
+>| ts              |                 |                 | condition-      |
+>|                 |                 |                 | hardened (but   |
+>|                 |                 |                 | more expensive) |
+>|                 |                 |                 | LI test.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| enableNZCTests  | OT_BOOLEAN      | True            | Enables nonzero |
+>|                 |                 |                 | curvature       |
+>|                 |                 |                 | tests.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| enableRamping   | OT_BOOLEAN      | True            | Enables         |
+>|                 |                 |                 | ramping.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| enableRegularis | OT_BOOLEAN      | False           | Enables         |
+>| ation           |                 |                 | automatic       |
+>|                 |                 |                 | Hessian         |
+>|                 |                 |                 | regularisation. |
+>+-----------------+-----------------+-----------------+-----------------+
+>| epsDen          | OT_REAL         | 0.000           | Denominator     |
+>|                 |                 |                 | tolerance for   |
+>|                 |                 |                 | ratio tests.    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| epsFlipping     | OT_REAL         | 0.000           | Tolerance of    |
+>|                 |                 |                 | squared         |
+>|                 |                 |                 | Cholesky        |
+>|                 |                 |                 | diagonal factor |
+>|                 |                 |                 | which triggers  |
+>|                 |                 |                 | flipping bound. |
+>+-----------------+-----------------+-----------------+-----------------+
+>| epsIterRef      | OT_REAL         | 0.000           | Early           |
+>|                 |                 |                 | termination     |
+>|                 |                 |                 | tolerance for   |
+>|                 |                 |                 | iterative       |
+>|                 |                 |                 | refinement.     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| epsLITests      | OT_REAL         | 0.000           | Tolerance for   |
+>|                 |                 |                 | linear          |
+>|                 |                 |                 | independence    |
+>|                 |                 |                 | tests.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| epsNZCTests     | OT_REAL         | 0.000           | Tolerance for   |
+>|                 |                 |                 | nonzero         |
+>|                 |                 |                 | curvature       |
+>|                 |                 |                 | tests.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| epsNum          | OT_REAL         | -0.000          | Numerator       |
+>|                 |                 |                 | tolerance for   |
+>|                 |                 |                 | ratio tests.    |
+>+-----------------+-----------------+-----------------+-----------------+
+>| epsRegularisati | OT_REAL         | 0.000           | Scaling factor  |
+>| on              |                 |                 | of identity     |
+>|                 |                 |                 | matrix used for |
+>|                 |                 |                 | Hessian         |
+>|                 |                 |                 | regularisation. |
+>+-----------------+-----------------+-----------------+-----------------+
+>| finalRamping    | OT_REAL         | 1               | Final value for |
+>|                 |                 |                 | ramping         |
+>|                 |                 |                 | strategy.       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| growFarBounds   | OT_REAL         | 1000            | Factor to grow  |
+>|                 |                 |                 | far bounds.     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| initialFarBound | OT_REAL         | 1000000         | Initial size    |
+>| s               |                 |                 | for far bounds. |
+>+-----------------+-----------------+-----------------+-----------------+
+>| initialRamping  | OT_REAL         | 0.500           | Start value for |
+>|                 |                 |                 | ramping         |
+>|                 |                 |                 | strategy.       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| initialStatusBo | OT_STRING       | lower           | Initial status  |
+>| unds            |                 |                 | of bounds at    |
+>|                 |                 |                 | first           |
+>|                 |                 |                 | iteration.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| maxDualJump     | OT_REAL         | 100000000       | Maximum allowed |
+>|                 |                 |                 | jump in dual    |
+>|                 |                 |                 | variables in    |
+>|                 |                 |                 | linear          |
+>|                 |                 |                 | independence    |
+>|                 |                 |                 | tests.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| maxPrimalJump   | OT_REAL         | 100000000       | Maximum allowed |
+>|                 |                 |                 | jump in primal  |
+>|                 |                 |                 | variables in    |
+>|                 |                 |                 | nonzero         |
+>|                 |                 |                 | curvature       |
+>|                 |                 |                 | tests.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nWSR            | OT_INTEGER      | None            | The maximum     |
+>|                 |                 |                 | number of       |
+>|                 |                 |                 | working set     |
+>|                 |                 |                 | recalculations  |
+>|                 |                 |                 | to be performed |
+>|                 |                 |                 | during the      |
+>|                 |                 |                 | initial         |
+>|                 |                 |                 | homotopy.       |
+>|                 |                 |                 | Default is 5(nx |
+>|                 |                 |                 | + nc)           |
+>+-----------------+-----------------+-----------------+-----------------+
+>| numRefinementSt | OT_INTEGER      | 1               | Maximum number  |
+>| eps             |                 |                 | of iterative    |
+>|                 |                 |                 | refinement      |
+>|                 |                 |                 | steps.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| numRegularisati | OT_INTEGER      | 0               | Maximum number  |
+>| onSteps         |                 |                 | of successive   |
+>|                 |                 |                 | regularisation  |
+>|                 |                 |                 | steps.          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| printLevel      | OT_STRING       | medium          | Defines the     |
+>|                 |                 |                 | amount of text  |
+>|                 |                 |                 | output during   |
+>|                 |                 |                 | QP solution,    |
+>|                 |                 |                 | see Section 5.7 |
+>+-----------------+-----------------+-----------------+-----------------+
+>| terminationTole | OT_REAL         | 0.000           | Relative        |
+>| rance           |                 |                 | termination     |
+>|                 |                 |                 | tolerance to    |
+>|                 |                 |                 | stop homotopy.  |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>sqic
+>
+>Interface to the SQIC solver for quadratic programming
+>
+>>List of available options
+>+----+------+---------+-------------+
+>| Id | Type | Default | Description |
+>+====+======+=========+=============+
+>+----+------+---------+-------------+
+>
+>nlp
+>
+>Solve QPs using an NlpSolver
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| nlp_solver      | OT_STRING       | GenericType()   | The NLPSOlver   |
+>|                 |                 |                 | used to solve   |
+>|                 |                 |                 | the QPs.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| nlp_solver_opti | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ons             |                 |                 | passed to the   |
+>|                 |                 |                 | NLPSOlver       |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available stats
+>+------------------+
+>|        Id        |
+>+==================+
+>| nlp_solver_stats |
+>+------------------+
+>
+>qcqp
+>
+>Solve QP using a QcqpSolver
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| qcqp_solver     | OT_STRING       | GenericType()   | The QcqpSolver  |
+>|                 |                 |                 | used to solve   |
+>|                 |                 |                 | the QPs.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qcqp_solver_opt | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ions            |                 |                 | passed to the   |
+>|                 |                 |                 | QCQPSOlver      |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available stats
+>+-------------------+
+>|        Id         |
+>+===================+
+>| qcqp_solver_stats |
+>+-------------------+
+>
+>Joel Andersson Diagrams
+>
+>C++ includes: qp_solver.hpp 
+-}
+newtype QpSolver = QpSolver (ForeignPtr QpSolver')
+-- typeclass decl
+class QpSolverClass a where
+  castQpSolver :: a -> QpSolver
+instance QpSolverClass QpSolver where
+  castQpSolver = id
+
+-- baseclass instances
+instance FunctionClass QpSolver where
+  castFunction (QpSolver x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass QpSolver where
+  castOptionsFunctionality (QpSolver x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass QpSolver where
+  castPrintableObject (QpSolver x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass QpSolver where
+  castSharedObject (QpSolver x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass QpSolver where
+  castIOInterfaceFunction (QpSolver x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal QpSolver (Ptr QpSolver') where
+  marshal (QpSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (QpSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__QpSolver" 
+  c_delete_casadi__QpSolver :: FunPtr (Ptr QpSolver' -> IO ())
+instance WrapReturn (Ptr QpSolver') QpSolver where
+  wrapReturn = (fmap QpSolver) . (newForeignPtr c_delete_casadi__QpSolver)
+
+
+-- raw decl
+data SX'
+-- data decl
+{-|
+-}
+newtype SX = SX (ForeignPtr SX')
+-- typeclass decl
+class SXClass a where
+  castSX :: a -> SX
+instance SXClass SX where
+  castSX = id
+
+-- baseclass instances
+instance PrintableObjectClass SX where
+  castPrintableObject (SX x) = PrintableObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal SX (Ptr SX') where
+  marshal (SX x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (SX x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__SX" 
+  c_delete_casadi__SX :: FunPtr (Ptr SX' -> IO ())
+instance WrapReturn (Ptr SX') SX where
+  wrapReturn = (fmap SX) . (newForeignPtr c_delete_casadi__SX)
+
+
+-- raw decl
+data SXElement'
+-- data decl
+{-|
+-}
+newtype SXElement = SXElement (ForeignPtr SXElement')
+-- typeclass decl
+class SXElementClass a where
+  castSXElement :: a -> SXElement
+instance SXElementClass SXElement where
+  castSXElement = id
+
+-- baseclass instances
+
+-- helper instances
+instance Marshal SXElement (Ptr SXElement') where
+  marshal (SXElement x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (SXElement x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__SXElement" 
+  c_delete_casadi__SXElement :: FunPtr (Ptr SXElement' -> IO ())
+instance WrapReturn (Ptr SXElement') SXElement where
+  wrapReturn = (fmap SXElement) . (newForeignPtr c_delete_casadi__SXElement)
+
+
+-- raw decl
+data SXFunction'
+-- data decl
+{-|
+>Dynamically created function that can be expanded into a series of scalar
+>operations.
+>
+>Joel Andersson
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| just_in_time | OT_BOOLEAN   | false        | Just-in-time | casadi::SXFu |
+>| _opencl      |              |              | compilation  | nctionIntern |
+>|              |              |              | for numeric  | al           |
+>|              |              |              | evaluation   |              |
+>|              |              |              | using OpenCL |              |
+>|              |              |              | (experimenta |              |
+>|              |              |              | l)           |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| just_in_time | OT_BOOLEAN   | false        | Propagate    | casadi::SXFu |
+>| _sparsity    |              |              | sparsity     | nctionIntern |
+>|              |              |              | patterns     | al           |
+>|              |              |              | using just-  |              |
+>|              |              |              | in-time      |              |
+>|              |              |              | compilation  |              |
+>|              |              |              | to a CPU or  |              |
+>|              |              |              | GPU using    |              |
+>|              |              |              | OpenCL       |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>Diagrams
+>
+>C++ includes: sx_function.hpp 
+-}
+newtype SXFunction = SXFunction (ForeignPtr SXFunction')
+-- typeclass decl
+class SXFunctionClass a where
+  castSXFunction :: a -> SXFunction
+instance SXFunctionClass SXFunction where
+  castSXFunction = id
+
+-- baseclass instances
+instance FunctionClass SXFunction where
+  castFunction (SXFunction x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass SXFunction where
+  castOptionsFunctionality (SXFunction x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass SXFunction where
+  castPrintableObject (SXFunction x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass SXFunction where
+  castSharedObject (SXFunction x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass SXFunction where
+  castIOInterfaceFunction (SXFunction x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal SXFunction (Ptr SXFunction') where
+  marshal (SXFunction x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (SXFunction x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__SXFunction" 
+  c_delete_casadi__SXFunction :: FunPtr (Ptr SXFunction' -> IO ())
+instance WrapReturn (Ptr SXFunction') SXFunction where
+  wrapReturn = (fmap SXFunction) . (newForeignPtr c_delete_casadi__SXFunction)
+
+
+-- raw decl
+data SdpSolver'
+-- data decl
+{-|
+>SdpSolver.
+>
+>Solves an SDP problem in standard form.
+>Seehttp://sdpa.indsys.chuo-u.ac.jp/sdpa/files/sdpa-c.6.2.0.manual.pdf
+>
+>Primal:
+>
+>min          c' x x subject to P = Sum_i^m F_i x_i - G P negative
+>semidefinite  LBA <= A x <= UBA LBX <= x   <= UBX  with x ( n x 1) c ( n x 1
+>) G, F_i  sparse symmetric (m x m) X dense symmetric ( m x m ) A sparse
+>matrix ( nc x n) LBA, UBA dense vector (nc x 1) LBX, UBX dense vector (n x
+>1)
+>
+>This formulation is chosen as primal, because it does not call for a large
+>decision variable space.
+>
+>Dual:
+>
+>max          trace(G Y) Y  subject to trace(F_i Y) = c_i Y positive
+>semidefinite  with Y dense symmetric ( m x m)
+>
+>On generality: you might have formulation with block partitioning:
+>
+>Primal:
+>
+>min          c' x x subject to Pj = Sum_i^m F_ij x_i - gj   for all j Pj
+>negative semidefinite   for all j  with x ( n x 1) c ( n x 1 ) G, F_i
+>sparse symmetric (m x m) X dense symmetric ( m x m )
+>
+>Dual:max          Sum_j trace(Gj Yj) Yj  subject to Sum_j trace(F_ij Yj) =
+>c_i   for all j Yj positive semidefinite     for all j  with Y dense
+>symmetric ( m x m)
+>
+>You can cast this into the standard form with: G = blkdiag(Gj for all j) Fi
+>= blkdiag(F_ij for all j)
+>
+>Implementations of SdpSolver are encouraged to exploit this block structure.
+>
+>General information
+>
+>>Input scheme: casadi::SDPInput (SDP_SOLVER_NUM_IN = 8) [sdpIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| SDP_SOLVER_F           | f                      | The horizontal stack   |
+>|                        |                        | of all matrices F_i: ( |
+>|                        |                        | m x nm) .              |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_C           | c                      | The vector c: ( n x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_G           | g                      | The matrix G: ( m x m) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_A           | a                      | The matrix A: ( nc x   |
+>|                        |                        | n) .                   |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_LBA         | lba                    | Lower bounds on Ax (   |
+>|                        |                        | nc x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_UBA         | uba                    | Upper bounds on Ax (   |
+>|                        |                        | nc x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_LBX         | lbx                    | Lower bounds on x ( n  |
+>|                        |                        | x 1 ) .                |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_UBX         | ubx                    | Upper bounds on x ( n  |
+>|                        |                        | x 1 ) .                |
+>+------------------------+------------------------+------------------------+
+>
+>>Output scheme: casadi::SDPOutput (SDP_SOLVER_NUM_OUT = 7) [sdpOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| SDP_SOLVER_X           | x                      | The primal solution (n |
+>|                        |                        | x 1) - may be used as  |
+>|                        |                        | initial guess .        |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_P           | p                      | The solution P (m x m) |
+>|                        |                        | - may be used as       |
+>|                        |                        | initial guess .        |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_DUAL        | dual                   | The dual solution (m x |
+>|                        |                        | m) - may be used as    |
+>|                        |                        | initial guess .        |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_COST        | cost                   | The primal optimal     |
+>|                        |                        | cost (1 x 1) .         |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_DUAL_COST   | dual_cost              | The dual optimal cost  |
+>|                        |                        | (1 x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_LAM_A       | lam_a                  | The dual solution      |
+>|                        |                        | corresponding to the   |
+>|                        |                        | linear constraints (nc |
+>|                        |                        | x 1) .                 |
+>+------------------------+------------------------+------------------------+
+>| SDP_SOLVER_LAM_X       | lam_x                  | The dual solution      |
+>|                        |                        | corresponding to       |
+>|                        |                        | simple bounds (n x 1)  |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| calc_dual    | OT_BOOLEAN   | true         | Indicate if  | casadi::SdpS |
+>|              |              |              | dual should  | olverInterna |
+>|              |              |              | be allocated | l            |
+>|              |              |              | and          |              |
+>|              |              |              | calculated.  |              |
+>|              |              |              | You may want |              |
+>|              |              |              | to avoid     |              |
+>|              |              |              | calculating  |              |
+>|              |              |              | this         |              |
+>|              |              |              | variable for |              |
+>|              |              |              | problems     |              |
+>|              |              |              | with n       |              |
+>|              |              |              | large, as is |              |
+>|              |              |              | always dense |              |
+>|              |              |              | (m x m).     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| calc_p       | OT_BOOLEAN   | true         | Indicate if  | casadi::SdpS |
+>|              |              |              | the P-part   | olverInterna |
+>|              |              |              | of primal    | l            |
+>|              |              |              | solution     |              |
+>|              |              |              | should be    |              |
+>|              |              |              | allocated    |              |
+>|              |              |              | and          |              |
+>|              |              |              | calculated.  |              |
+>|              |              |              | You may want |              |
+>|              |              |              | to avoid     |              |
+>|              |              |              | calculating  |              |
+>|              |              |              | this         |              |
+>|              |              |              | variable for |              |
+>|              |              |              | problems     |              |
+>|              |              |              | with n       |              |
+>|              |              |              | large, as is |              |
+>|              |              |              | always dense |              |
+>|              |              |              | (m x m).     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_proble | OT_BOOLEAN   | false        | Print out    | casadi::SdpS |
+>| m            |              |              | problem      | olverInterna |
+>|              |              |              | statement    | l            |
+>|              |              |              | for          |              |
+>|              |              |              | debugging.   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_SdpSolver_dsdp'>dsdp</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>SdpSolver.doc("myextraplugin")
+>
+>dsdp
+>
+>Interface to the SDP solver DSDP Warning: The solver DSDP is not good at
+>handling linear equalities. There are several options if you notice
+>difficulties: play around with the parameter "_penalty" leave a gap
+>manually switch to another SDP Solver
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| _loglevel       | OT_INTEGER      | 0               | An integer that |
+>|                 |                 |                 | specifies how   |
+>|                 |                 |                 | much logging is |
+>|                 |                 |                 | done on stdout. |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _penalty        | OT_REAL         | 100000          | Penality        |
+>|                 |                 |                 | parameter       |
+>|                 |                 |                 | lambda. Must    |
+>|                 |                 |                 | exceed the      |
+>|                 |                 |                 | trace of Y.     |
+>|                 |                 |                 | This parameter  |
+>|                 |                 |                 | heavily         |
+>|                 |                 |                 | influences the  |
+>|                 |                 |                 | ability of DSDP |
+>|                 |                 |                 | to treat linear |
+>|                 |                 |                 | equalities. The |
+>|                 |                 |                 | DSDP standard   |
+>|                 |                 |                 | default (1e8)   |
+>|                 |                 |                 | will make a     |
+>|                 |                 |                 | problem with    |
+>|                 |                 |                 | linear equality |
+>|                 |                 |                 | return unusable |
+>|                 |                 |                 | solutions.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _printlevel     | OT_INTEGER      | 1               | A printlevel of |
+>|                 |                 |                 | zero will       |
+>|                 |                 |                 | disable all     |
+>|                 |                 |                 | output. Another |
+>|                 |                 |                 | number          |
+>|                 |                 |                 | indicates how   |
+>|                 |                 |                 | often a line is |
+>|                 |                 |                 | printed.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _reuse          | OT_INTEGER      | 4               | Maximum on the  |
+>|                 |                 |                 | number of times |
+>|                 |                 |                 | the Schur       |
+>|                 |                 |                 | complement      |
+>|                 |                 |                 | matrix is       |
+>|                 |                 |                 | reused          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _rho            | OT_REAL         | 4               | Potential       |
+>|                 |                 |                 | parameter. Must |
+>|                 |                 |                 | be >=1          |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _use_penalty    | OT_BOOLEAN      | true            | Modifies the    |
+>|                 |                 |                 | algorithm to    |
+>|                 |                 |                 | use a penality  |
+>|                 |                 |                 | gamma on r.     |
+>+-----------------+-----------------+-----------------+-----------------+
+>| _zbar           | OT_REAL         | 1.000e+10       | Initial upper   |
+>|                 |                 |                 | bound on the    |
+>|                 |                 |                 | objective of    |
+>|                 |                 |                 | the dual        |
+>|                 |                 |                 | problem.        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| dualTol         | OT_REAL         | 0.000           | Tolerance for   |
+>|                 |                 |                 | dual            |
+>|                 |                 |                 | infeasibility   |
+>|                 |                 |                 | (translates to  |
+>|                 |                 |                 | primal          |
+>|                 |                 |                 | infeasibility   |
+>|                 |                 |                 | in dsdp terms)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| gapTol          | OT_REAL         | 0.000           | Convergence     |
+>|                 |                 |                 | criterion based |
+>|                 |                 |                 | on distance     |
+>|                 |                 |                 | between primal  |
+>|                 |                 |                 | and dual        |
+>|                 |                 |                 | objective       |
+>+-----------------+-----------------+-----------------+-----------------+
+>| inf             | OT_REAL         | 1.000e+30       | Treat numbers   |
+>|                 |                 |                 | higher than     |
+>|                 |                 |                 | this as         |
+>|                 |                 |                 | infinity        |
+>+-----------------+-----------------+-----------------+-----------------+
+>| maxIter         | OT_INTEGER      | 500             | Maximum number  |
+>|                 |                 |                 | of iterations   |
+>+-----------------+-----------------+-----------------+-----------------+
+>| primalTol       | OT_REAL         | 0.000           | Tolerance for   |
+>|                 |                 |                 | primal          |
+>|                 |                 |                 | infeasibility   |
+>|                 |                 |                 | (translates to  |
+>|                 |                 |                 | dual            |
+>|                 |                 |                 | infeasibility   |
+>|                 |                 |                 | in dsdp terms)  |
+>+-----------------+-----------------+-----------------+-----------------+
+>| stepTol         | OT_REAL         | 0.050           | Terminate the   |
+>|                 |                 |                 | solver if the   |
+>|                 |                 |                 | step length in  |
+>|                 |                 |                 | the primal is   |
+>|                 |                 |                 | below this      |
+>|                 |                 |                 | tolerance.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available stats
+>+--------------------+
+>|         Id         |
+>+====================+
+>| solution_type      |
+>+--------------------+
+>| termination_reason |
+>+--------------------+
+>
+>Joel Andersson Diagrams
+>
+>C++ includes: sdp_solver.hpp 
+-}
+newtype SdpSolver = SdpSolver (ForeignPtr SdpSolver')
+-- typeclass decl
+class SdpSolverClass a where
+  castSdpSolver :: a -> SdpSolver
+instance SdpSolverClass SdpSolver where
+  castSdpSolver = id
+
+-- baseclass instances
+instance FunctionClass SdpSolver where
+  castFunction (SdpSolver x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass SdpSolver where
+  castOptionsFunctionality (SdpSolver x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass SdpSolver where
+  castPrintableObject (SdpSolver x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass SdpSolver where
+  castSharedObject (SdpSolver x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass SdpSolver where
+  castIOInterfaceFunction (SdpSolver x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal SdpSolver (Ptr SdpSolver') where
+  marshal (SdpSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (SdpSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__SdpSolver" 
+  c_delete_casadi__SdpSolver :: FunPtr (Ptr SdpSolver' -> IO ())
+instance WrapReturn (Ptr SdpSolver') SdpSolver where
+  wrapReturn = (fmap SdpSolver) . (newForeignPtr c_delete_casadi__SdpSolver)
+
+
+-- raw decl
+data SdqpSolver'
+-- data decl
+{-|
+>SdqpSolver.
+>
+>Same as an SdpSolver, but with a quadratic objective 1/2 x' H x
+>
+>General information
+>
+>>Input scheme: casadi::SDQPInput (SDQP_SOLVER_NUM_IN = 9) [sdqpIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| SDQP_SOLVER_H          | h                      | The matrix H: sparse ( |
+>|                        |                        | n x n) .               |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_C          | c                      | The vector c: ( n x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_F          | f                      | The horizontal stack   |
+>|                        |                        | of all matrices F_i: ( |
+>|                        |                        | m x nm) .              |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_G          | g                      | The matrix G: ( m x m) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_A          | a                      | The matrix A: ( nc x   |
+>|                        |                        | n) .                   |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_LBA        | lba                    | Lower bounds on Ax (   |
+>|                        |                        | nc x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_UBA        | uba                    | Upper bounds on Ax (   |
+>|                        |                        | nc x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_LBX        | lbx                    | Lower bounds on x ( n  |
+>|                        |                        | x 1 ) .                |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_UBX        | ubx                    | Upper bounds on x ( n  |
+>|                        |                        | x 1 ) .                |
+>+------------------------+------------------------+------------------------+
+>
+>>Output scheme: casadi::SDQPOutput (SDQP_SOLVER_NUM_OUT = 7) [sdqpOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| SDQP_SOLVER_X          | x                      | The primal solution (n |
+>|                        |                        | x 1) - may be used as  |
+>|                        |                        | initial guess .        |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_P          | p                      | The solution P (m x m) |
+>|                        |                        | - may be used as       |
+>|                        |                        | initial guess .        |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_DUAL       | dual                   | The dual solution (m x |
+>|                        |                        | m) - may be used as    |
+>|                        |                        | initial guess .        |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_COST       | cost                   | The primal optimal     |
+>|                        |                        | cost (1 x 1) .         |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_DUAL_COST  | dual_cost              | The dual optimal cost  |
+>|                        |                        | (1 x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_LAM_A      | lam_a                  | The dual solution      |
+>|                        |                        | corresponding to the   |
+>|                        |                        | linear constraints (nc |
+>|                        |                        | x 1) .                 |
+>+------------------------+------------------------+------------------------+
+>| SDQP_SOLVER_LAM_X      | lam_x                  | The dual solution      |
+>|                        |                        | corresponding to       |
+>|                        |                        | simple bounds (n x 1)  |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| sdp_solver   | OT_STRING    | GenericType( | The          | casadi::Sdqp |
+>|              |              | )            | SdqpSolver   | SolverIntern |
+>|              |              |              | used to      | al           |
+>|              |              |              | solve the    |              |
+>|              |              |              | SDPs.        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| sdp_solver_o | OT_DICTIONAR | GenericType( | Options to   | casadi::Sdqp |
+>| ptions       | Y            | )            | be passed to | SolverIntern |
+>|              |              |              | the          | al           |
+>|              |              |              | SDPSOlver    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_SdqpSolver_sdp'>sdp</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>SdqpSolver.doc("myextraplugin")
+>
+>sdp
+>
+>Solve an SQDP using an SdpSolver Note: this implementation relies on
+>Cholesky decomposition: Chol(H) = L -> H = LL' with L lower triangular This
+>requires Pi, H to be positive definite. Positive semi-definite is not
+>sufficient. Notably, H==0 will not work.
+>
+>A better implementation would rely on matrix square root, but we need
+>singular value decomposition to implement that.
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| sdp_solver      | OT_STRING       | GenericType()   | The SdpSolver   |
+>|                 |                 |                 | used to solve   |
+>|                 |                 |                 | the SDQPs.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| sdp_solver_opti | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ons             |                 |                 | passed to the   |
+>|                 |                 |                 | SDPSOlver       |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available stats
+>+------------------+
+>|        Id        |
+>+==================+
+>| sdp_solver_stats |
+>+------------------+
+>
+>Joel Andersson Diagrams
+>
+>C++ includes: sdqp_solver.hpp 
+-}
+newtype SdqpSolver = SdqpSolver (ForeignPtr SdqpSolver')
+-- typeclass decl
+class SdqpSolverClass a where
+  castSdqpSolver :: a -> SdqpSolver
+instance SdqpSolverClass SdqpSolver where
+  castSdqpSolver = id
+
+-- baseclass instances
+instance FunctionClass SdqpSolver where
+  castFunction (SdqpSolver x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass SdqpSolver where
+  castOptionsFunctionality (SdqpSolver x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass SdqpSolver where
+  castPrintableObject (SdqpSolver x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass SdqpSolver where
+  castSharedObject (SdqpSolver x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass SdqpSolver where
+  castIOInterfaceFunction (SdqpSolver x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal SdqpSolver (Ptr SdqpSolver') where
+  marshal (SdqpSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (SdqpSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__SdqpSolver" 
+  c_delete_casadi__SdqpSolver :: FunPtr (Ptr SdqpSolver' -> IO ())
+instance WrapReturn (Ptr SdqpSolver') SdqpSolver where
+  wrapReturn = (fmap SdqpSolver) . (newForeignPtr c_delete_casadi__SdqpSolver)
+
+
+-- raw decl
+data SharedObject'
+-- data decl
+{-|
+>SharedObject implements a reference counting framework similar for efficient
+>and easily-maintained memory management.
+>
+>To use the class, both the SharedObject class (the public class), and the
+>SharedObjectNode class (the internal class) must be inherited from. It can
+>be done in two different files and together with memory management, this
+>approach provides a clear distinction of which methods of the class are to
+>be considered "public", i.e. methods for public use that can be considered
+>to remain over time with small changes, and the internal memory.
+>
+>When interfacing a software, which typically includes including some header
+>file, this is best done only in the file where the internal class is
+>defined, to avoid polluting the global namespace and other side effects.
+>
+>The default constructor always means creating a null pointer to an internal
+>class only. To allocate an internal class (this works only when the internal
+>class isn't abstract), use the constructor with arguments.
+>
+>The copy constructor and the assignment operator perform shallow copies
+>only, to make a deep copy you must use the clone method explicitly. This
+>will give a shared pointer instance.
+>
+>In an inheritance hierarchy, you can cast down automatically, e.g. (
+>SXFunction is a child class of Function): SXFunction derived(...); Function
+>base = derived;
+>
+>To cast up, use the shared_cast template function, which works analogously
+>to dynamic_cast, static_cast, const_cast etc, e.g.: SXFunction derived(...);
+>Function base = derived; SXFunction derived_from_base =
+>shared_cast<SXFunction>(base);
+>
+>A failed shared_cast will result in a null pointer (cf. dynamic_cast)
+>
+>Joel Andersson
+>
+>C++ includes: shared_object.hpp 
+-}
+newtype SharedObject = SharedObject (ForeignPtr SharedObject')
+-- typeclass decl
+class SharedObjectClass a where
+  castSharedObject :: a -> SharedObject
+instance SharedObjectClass SharedObject where
+  castSharedObject = id
+
+-- baseclass instances
+instance PrintableObjectClass SharedObject where
+  castPrintableObject (SharedObject x) = PrintableObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal SharedObject (Ptr SharedObject') where
+  marshal (SharedObject x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (SharedObject x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__SharedObject" 
+  c_delete_casadi__SharedObject :: FunPtr (Ptr SharedObject' -> IO ())
+instance WrapReturn (Ptr SharedObject') SharedObject where
+  wrapReturn = (fmap SharedObject) . (newForeignPtr c_delete_casadi__SharedObject)
+
+
+-- raw decl
+data Simulator'
+-- data decl
+{-|
+>Integrator class.
+>
+>An "simulator" integrates an IVP, stopping at a (fixed) number of grid
+>points and evaluates a set of output functions at these points. The internal
+>stepsizes of the integrator need not coincide with the gridpoints.
+>
+>Simulator is an casadi::Function mapping from casadi::IntegratorInput to n.
+>\\\\
+>
+>The output function needs to be a mapping from casadi::DAEInput to n. The
+>default output has n=1 and the output is the (vectorized) differential state
+>for each time step.
+>
+>Joel Andersson
+>
+>>Input scheme: casadi::IntegratorInput (INTEGRATOR_NUM_IN = 6) [integratorIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| INTEGRATOR_X0          | x0                     | Differential state at  |
+>|                        |                        | the initial time .     |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_P           | p                      | Parameters .           |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_Z0          | z0                     | Initial guess for the  |
+>|                        |                        | algebraic variable .   |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_RX0         | rx0                    | Backward differential  |
+>|                        |                        | state at the final     |
+>|                        |                        | time .                 |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_RP          | rp                     | Backward parameter     |
+>|                        |                        | vector .               |
+>+------------------------+------------------------+------------------------+
+>| INTEGRATOR_RZ0         | rz0                    | Initial guess for the  |
+>|                        |                        | backwards algebraic    |
+>|                        |                        | variable .             |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp | casadi::Simu |
+>|              |              |              | uts)  (initi | latorInterna |
+>|              |              |              | al|step)     | l            |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>>List of available monitors
+>+---------+---------------------------+
+>|   Id    |          Used in          |
+>+=========+===========================+
+>| initial | casadi::SimulatorInternal |
+>+---------+---------------------------+
+>| inputs  | casadi::FunctionInternal  |
+>+---------+---------------------------+
+>| outputs | casadi::FunctionInternal  |
+>+---------+---------------------------+
+>| step    | casadi::SimulatorInternal |
+>+---------+---------------------------+
+>
+>Diagrams
+>
+>C++ includes: simulator.hpp 
+-}
+newtype Simulator = Simulator (ForeignPtr Simulator')
+-- typeclass decl
+class SimulatorClass a where
+  castSimulator :: a -> Simulator
+instance SimulatorClass Simulator where
+  castSimulator = id
+
+-- baseclass instances
+instance FunctionClass Simulator where
+  castFunction (Simulator x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass Simulator where
+  castOptionsFunctionality (Simulator x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass Simulator where
+  castPrintableObject (Simulator x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass Simulator where
+  castSharedObject (Simulator x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass Simulator where
+  castIOInterfaceFunction (Simulator x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal Simulator (Ptr Simulator') where
+  marshal (Simulator x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (Simulator x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__Simulator" 
+  c_delete_casadi__Simulator :: FunPtr (Ptr Simulator' -> IO ())
+instance WrapReturn (Ptr Simulator') Simulator where
+  wrapReturn = (fmap Simulator) . (newForeignPtr c_delete_casadi__Simulator)
+
+
+-- raw decl
+data Slice'
+-- data decl
+{-|
+>Class representing a Slice.
+>
+>Note that Python or Octave do not need to use this class. They can just use
+>slicing utility from the host language ( M[0:6] in Python, M(1:7) )
+>
+>C++ includes: slice.hpp 
+-}
+newtype Slice = Slice (ForeignPtr Slice')
+-- typeclass decl
+class SliceClass a where
+  castSlice :: a -> Slice
+instance SliceClass Slice where
+  castSlice = id
+
+-- baseclass instances
+instance PrintableObjectClass Slice where
+  castPrintableObject (Slice x) = PrintableObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal Slice (Ptr Slice') where
+  marshal (Slice x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (Slice x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__Slice" 
+  c_delete_casadi__Slice :: FunPtr (Ptr Slice' -> IO ())
+instance WrapReturn (Ptr Slice') Slice where
+  wrapReturn = (fmap Slice) . (newForeignPtr c_delete_casadi__Slice)
+
+
+-- raw decl
+data SocpSolver'
+-- data decl
+{-|
+>SocpSolver.
+>
+>Solves an Second Order Cone Programming (SOCP) problem in standard form.
+>
+>Primal:
+>
+>min          c' x x subject to || Gi' x + hi ||_2 <= ei' x + fi  i = 1..m
+>LBA <= A x <= UBA LBX <= x   <= UBX  with x ( n x 1) c ( n x 1 ) Gi  sparse
+>(n x ni) hi  dense (ni x 1) ei  dense (n x 1) fi  dense (1 x 1) N = Sum_i^m
+>ni A sparse (nc x n) LBA, UBA dense vector (nc x 1) LBX, UBX dense vector (n
+>x 1)
+>
+>General information
+>
+>>Input scheme: casadi::SOCPInput (SOCP_SOLVER_NUM_IN = 10) [socpIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| SOCP_SOLVER_G          | g                      | The horizontal stack   |
+>|                        |                        | of all matrices Gi: (  |
+>|                        |                        | n x N) .               |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_H          | h                      | The vertical stack of  |
+>|                        |                        | all vectors hi: ( N x  |
+>|                        |                        | 1) .                   |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_E          | e                      | The vertical stack of  |
+>|                        |                        | all vectors ei: ( nm x |
+>|                        |                        | 1) .                   |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_F          | f                      | The vertical stack of  |
+>|                        |                        | all scalars fi: ( m x  |
+>|                        |                        | 1) .                   |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_C          | c                      | The vector c: ( n x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_A          | a                      | The matrix A: ( nc x   |
+>|                        |                        | n) .                   |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_LBA        | lba                    | Lower bounds on Ax (   |
+>|                        |                        | nc x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_UBA        | uba                    | Upper bounds on Ax (   |
+>|                        |                        | nc x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_LBX        | lbx                    | Lower bounds on x ( n  |
+>|                        |                        | x 1 ) .                |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_UBX        | ubx                    | Upper bounds on x ( n  |
+>|                        |                        | x 1 ) .                |
+>+------------------------+------------------------+------------------------+
+>
+>>Output scheme: casadi::SOCPOutput (SOCP_SOLVER_NUM_OUT = 4) [socpOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| SOCP_SOLVER_X          | x                      | The primal solution (n |
+>|                        |                        | x 1) .                 |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_COST       | cost                   | The primal optimal     |
+>|                        |                        | cost (1 x 1) .         |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_LAM_A      | lam_a                  | The dual solution      |
+>|                        |                        | corresponding to the   |
+>|                        |                        | linear constraints (nc |
+>|                        |                        | x 1) .                 |
+>+------------------------+------------------------+------------------------+
+>| SOCP_SOLVER_LAM_X      | lam_x                  | The dual solution      |
+>|                        |                        | corresponding to       |
+>|                        |                        | simple bounds (n x 1)  |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ni           | OT_INTEGERVE | GenericType( | Provide the  | casadi::Socp |
+>|              | CTOR         | )            | size of each | SolverIntern |
+>|              |              |              | SOC          | al           |
+>|              |              |              | constraint.  |              |
+>|              |              |              | Must sum up  |              |
+>|              |              |              | to N.        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_proble | OT_BOOLEAN   | false        | Print out    | casadi::Socp |
+>| m            |              |              | problem      | SolverIntern |
+>|              |              |              | statement    | al           |
+>|              |              |              | for          |              |
+>|              |              |              | debugging.   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_SocpSolver_sdp'>sdp</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>SocpSolver.doc("myextraplugin")
+>
+>sdp
+>
+>Solve SOCPs using an SdpSolver
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| sdp_solver      | OT_STRING       | GenericType()   | The SdpSolver   |
+>|                 |                 |                 | used to solve   |
+>|                 |                 |                 | the SOCPs.      |
+>+-----------------+-----------------+-----------------+-----------------+
+>| sdp_solver_opti | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ons             |                 |                 | passed to the   |
+>|                 |                 |                 | SDPSOlver       |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available stats
+>+------------------+
+>|        Id        |
+>+==================+
+>| sdp_solver_stats |
+>+------------------+
+>
+>Joris Gillis Diagrams
+>
+>C++ includes: socp_solver.hpp 
+-}
+newtype SocpSolver = SocpSolver (ForeignPtr SocpSolver')
+-- typeclass decl
+class SocpSolverClass a where
+  castSocpSolver :: a -> SocpSolver
+instance SocpSolverClass SocpSolver where
+  castSocpSolver = id
+
+-- baseclass instances
+instance FunctionClass SocpSolver where
+  castFunction (SocpSolver x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass SocpSolver where
+  castOptionsFunctionality (SocpSolver x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass SocpSolver where
+  castPrintableObject (SocpSolver x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass SocpSolver where
+  castSharedObject (SocpSolver x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass SocpSolver where
+  castIOInterfaceFunction (SocpSolver x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal SocpSolver (Ptr SocpSolver') where
+  marshal (SocpSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (SocpSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__SocpSolver" 
+  c_delete_casadi__SocpSolver :: FunPtr (Ptr SocpSolver' -> IO ())
+instance WrapReturn (Ptr SocpSolver') SocpSolver where
+  wrapReturn = (fmap SocpSolver) . (newForeignPtr c_delete_casadi__SocpSolver)
+
+
+-- raw decl
+data Sparsity'
+-- data decl
+{-|
+>General sparsity class.
+>
+>The storage format is a compressed column storage (CCS) format.  In this
+>format, the structural non-zero elements are stored in column-major order,
+>starting from the upper left corner of the matrix and ending in the lower
+>right corner.
+>
+>In addition to the dimension ( size1(), size2()), (i.e. the number of rows
+>and the number of columns respectively), there are also two vectors of
+>integers:
+>
+>"colind" [length size2()+1], which contains the index to the first non-
+>zero element on or after the corresponding column. All the non-zero elements
+>of a particular i are thus the elements with index el that fulfills:
+>colind[i] <= el < colind[i+1].
+>
+>"row" [same length as the number of non-zero elements, size()] The rows
+>for each of the structural non-zeros.
+>
+>Note that with this format, it is cheap to loop over all the non-zero
+>elements of a particular column, at constant time per element, but expensive
+>to jump to access a location (i, j).
+>
+>If the matrix is dense, i.e. length(row) == size1()*size2(), the format
+>reduces to standard dense column major format, which allows access to an
+>arbitrary element in constant time.
+>
+>Since the object is reference counted (it inherits from SharedObject),
+>several matrices are allowed to share the same sparsity pattern.
+>
+>The implementations of some methods of this class has been taken from the
+>CSparse package and modified to use C++ standard library and CasADi data
+>structures.
+>
+>See:   Matrix
+>
+>Joel Andersson
+>
+>C++ includes: sparsity.hpp 
+-}
+newtype Sparsity = Sparsity (ForeignPtr Sparsity')
+-- typeclass decl
+class SparsityClass a where
+  castSparsity :: a -> Sparsity
+instance SparsityClass Sparsity where
+  castSparsity = id
+
+-- baseclass instances
+instance PrintableObjectClass Sparsity where
+  castPrintableObject (Sparsity x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass Sparsity where
+  castSharedObject (Sparsity x) = SharedObject (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal Sparsity (Ptr Sparsity') where
+  marshal (Sparsity x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (Sparsity x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__Sparsity" 
+  c_delete_casadi__Sparsity :: FunPtr (Ptr Sparsity' -> IO ())
+instance WrapReturn (Ptr Sparsity') Sparsity where
+  wrapReturn = (fmap Sparsity) . (newForeignPtr c_delete_casadi__Sparsity)
+
+
+-- raw decl
+data StabilizedQpSolver'
+-- data decl
+{-|
+>StabilizedQpSolver.
+>
+>Solves the following strictly convex problem:
+>
+>min          1/2 x' H x + g' x x  subject to LBA <= A x <= UBA LBX <= x   <=
+>UBX  with : H sparse (n x n) positive definite g dense  (n x 1) n: number of
+>decision variables (x) nc: number of constraints (A)
+>
+>If H is not positive-definite, the solver should throw an error.
+>
+>General information
+>
+>>Input scheme: casadi::StabilizedQpSolverInput (STABILIZED_QP_SOLVER_NUM_IN = 12) [stabilizedQpIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| STABILIZED_QP_SOLVER_H | h                      | The square matrix H:   |
+>|                        |                        | sparse, (n x n). Only  |
+>|                        |                        | the lower triangular   |
+>|                        |                        | part is actually used. |
+>|                        |                        | The matrix is assumed  |
+>|                        |                        | to be symmetrical.     |
+>+------------------------+------------------------+------------------------+
+>| STABILIZED_QP_SOLVER_G | g                      | The vector g: dense,   |
+>|                        |                        | (n x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| STABILIZED_QP_SOLVER_A | a                      | The matrix A: sparse,  |
+>|                        |                        | (nc x n) - product     |
+>|                        |                        | with x must be dense.  |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| STABILIZED_QP_SOLVER_L | lba                    | dense, (nc x 1)        |
+>| BA                     |                        |                        |
+>+------------------------+------------------------+------------------------+
+>| STABILIZED_QP_SOLVER_U | uba                    | dense, (nc x 1)        |
+>| BA                     |                        |                        |
+>+------------------------+------------------------+------------------------+
+>| STABILIZED_QP_SOLVER_L | lbx                    | dense, (n x 1)         |
+>| BX                     |                        |                        |
+>+------------------------+------------------------+------------------------+
+>| STABILIZED_QP_SOLVER_U | ubx                    | dense, (n x 1)         |
+>| BX                     |                        |                        |
+>+------------------------+------------------------+------------------------+
+>| STABILIZED_QP_SOLVER_X | x0                     | dense, (n x 1)         |
+>| 0                      |                        |                        |
+>+------------------------+------------------------+------------------------+
+>| STABILIZED_QP_SOLVER_L | lam_x0                 | dense                  |
+>| AM_X0                  |                        |                        |
+>+------------------------+------------------------+------------------------+
+>| STABILIZED_QP_SOLVER_M | muR                    | dense (1 x 1)          |
+>| UR                     |                        |                        |
+>+------------------------+------------------------+------------------------+
+>| STABILIZED_QP_SOLVER_M | muE                    | dense (nc x 1)         |
+>| UE                     |                        |                        |
+>+------------------------+------------------------+------------------------+
+>| STABILIZED_QP_SOLVER_M | mu                     | dense (nc x 1)         |
+>| U                      |                        |                        |
+>+------------------------+------------------------+------------------------+
+>
+>>Output scheme: casadi::QpSolverOutput (QP_SOLVER_NUM_OUT = 4) [qpOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| QP_SOLVER_X            | x                      | The primal solution .  |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_COST         | cost                   | The optimal cost .     |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_LAM_A        | lam_a                  | The dual solution      |
+>|                        |                        | corresponding to       |
+>|                        |                        | linear bounds .        |
+>+------------------------+------------------------+------------------------+
+>| QP_SOLVER_LAM_X        | lam_x                  | The dual solution      |
+>|                        |                        | corresponding to       |
+>|                        |                        | simple bounds .        |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp |              |
+>|              |              |              | uts)         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>List of plugins
+>
+>- <a href='#plugin_StabilizedQpSolver_sqic'>sqic</a>
+>
+>- <a href='#plugin_StabilizedQpSolver_qp'>qp</a>
+>
+>Note: some of the plugins in this list might not be available on your
+>system. Also, there might be extra plugins available to you that are not
+>listed here. You can obtain their documentation with
+>StabilizedQpSolver.doc("myextraplugin")
+>
+>sqic
+>
+>Interface to SQIC
+>
+>>List of available options
+>+----+------+---------+-------------+
+>| Id | Type | Default | Description |
+>+====+======+=========+=============+
+>+----+------+---------+-------------+
+>
+>qp
+>
+>Solved a stabilized QP using a standard QP solver
+>
+>>List of available options
+>+-----------------+-----------------+-----------------+-----------------+
+>|       Id        |      Type       |     Default     |   Description   |
+>+=================+=================+=================+=================+
+>| qp_solver       | OT_STRING       | GenericType()   | The QP solver   |
+>|                 |                 |                 | used to solve   |
+>|                 |                 |                 | the stabilized  |
+>|                 |                 |                 | QPs.            |
+>+-----------------+-----------------+-----------------+-----------------+
+>| qp_solver_optio | OT_DICTIONARY   | GenericType()   | Options to be   |
+>| ns              |                 |                 | passed to the   |
+>|                 |                 |                 | QP solver       |
+>|                 |                 |                 | instance        |
+>+-----------------+-----------------+-----------------+-----------------+
+>
+>>List of available stats
+>+-----------------+
+>|       Id        |
+>+=================+
+>| qp_solver_stats |
+>+-----------------+
+>
+>Joel Andersson Diagrams
+>
+>C++ includes: stabilized_qp_solver.hpp 
+-}
+newtype StabilizedQpSolver = StabilizedQpSolver (ForeignPtr StabilizedQpSolver')
+-- typeclass decl
+class StabilizedQpSolverClass a where
+  castStabilizedQpSolver :: a -> StabilizedQpSolver
+instance StabilizedQpSolverClass StabilizedQpSolver where
+  castStabilizedQpSolver = id
+
+-- baseclass instances
+instance FunctionClass StabilizedQpSolver where
+  castFunction (StabilizedQpSolver x) = Function (castForeignPtr x)
+
+instance OptionsFunctionalityClass StabilizedQpSolver where
+  castOptionsFunctionality (StabilizedQpSolver x) = OptionsFunctionality (castForeignPtr x)
+
+instance PrintableObjectClass StabilizedQpSolver where
+  castPrintableObject (StabilizedQpSolver x) = PrintableObject (castForeignPtr x)
+
+instance SharedObjectClass StabilizedQpSolver where
+  castSharedObject (StabilizedQpSolver x) = SharedObject (castForeignPtr x)
+
+instance IOInterfaceFunctionClass StabilizedQpSolver where
+  castIOInterfaceFunction (StabilizedQpSolver x) = IOInterfaceFunction (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal StabilizedQpSolver (Ptr StabilizedQpSolver') where
+  marshal (StabilizedQpSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (StabilizedQpSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__StabilizedQpSolver" 
+  c_delete_casadi__StabilizedQpSolver :: FunPtr (Ptr StabilizedQpSolver' -> IO ())
+instance WrapReturn (Ptr StabilizedQpSolver') StabilizedQpSolver where
+  wrapReturn = (fmap StabilizedQpSolver) . (newForeignPtr c_delete_casadi__StabilizedQpSolver)
 
 
 -- raw decl
diff --git a/Casadi/Core/Enums.hs b/Casadi/Core/Enums.hs
--- a/Casadi/Core/Enums.hs
+++ b/Casadi/Core/Enums.hs
@@ -19,26 +19,26 @@
          IntegratorOutput(..),
          JacGInput(..),
          JacGOutput(..),
-         LPSolverInput(..),
-         LPSolverOutput(..),
          LPStruct(..),
          LinsolInput(..),
          LinsolOutput(..),
+         LpSolverInput(..),
+         LpSolverOutput(..),
          MayerInput(..),
          NLPInput(..),
          NLPOutput(..),
-         NLPSolverInput(..),
-         NLPSolverOutput(..),
+         NlpSolverInput(..),
+         NlpSolverOutput(..),
          OCPInput(..),
          OCPOutput(..),
          Operation(..),
          Opt_type(..),
-         QCQPSolverInput(..),
-         QCQPSolverOutput(..),
          QCQPStruct(..),
-         QPSolverInput(..),
-         QPSolverOutput(..),
          QPStruct(..),
+         QcqpSolverInput(..),
+         QcqpSolverOutput(..),
+         QpSolverInput(..),
+         QpSolverOutput(..),
          RDAEInput(..),
          RDAEOutput(..),
          SDPInput(..),
@@ -51,7 +51,7 @@
          SOCPOutput(..),
          SOCPStruct(..),
          SparsityType(..),
-         StabilizedQPSolverInput(..),
+         StabilizedQpSolverInput(..),
          Type(..),
        ) where
 
@@ -320,24 +320,24 @@
                        | SCHEME_IntegratorOutput
                        | SCHEME_JacGInput
                        | SCHEME_JacGOutput
-                       | SCHEME_LPSolverInput
-                       | SCHEME_LPSolverOutput
                        | SCHEME_LPStruct
                        | SCHEME_LinsolInput
                        | SCHEME_LinsolOutput
+                       | SCHEME_LpSolverInput
+                       | SCHEME_LpSolverOutput
                        | SCHEME_MayerInput
                        | SCHEME_NLPInput
                        | SCHEME_NLPOutput
-                       | SCHEME_NLPSolverInput
-                       | SCHEME_NLPSolverOutput
+                       | SCHEME_NlpSolverInput
+                       | SCHEME_NlpSolverOutput
                        | SCHEME_OCPInput
                        | SCHEME_OCPOutput
-                       | SCHEME_QCQPSolverInput
-                       | SCHEME_QCQPSolverOutput
                        | SCHEME_QCQPStruct
-                       | SCHEME_QPSolverInput
-                       | SCHEME_QPSolverOutput
                        | SCHEME_QPStruct
+                       | SCHEME_QcqpSolverInput
+                       | SCHEME_QcqpSolverOutput
+                       | SCHEME_QpSolverInput
+                       | SCHEME_QpSolverOutput
                        | SCHEME_RDAEInput
                        | SCHEME_RDAEOutput
                        | SCHEME_SDPInput
@@ -349,7 +349,7 @@
                        | SCHEME_SOCPInput
                        | SCHEME_SOCPOutput
                        | SCHEME_SOCPStruct
-                       | SCHEME_StabilizedQPSolverInput
+                       | SCHEME_StabilizedQpSolverInput
                        deriving (Show, Eq)
 instance Enum InputOutputScheme where
         fromEnum (SCHEME_ControlSimulatorInput) = 3
@@ -367,24 +367,24 @@
         fromEnum (SCHEME_IntegratorOutput) = 10
         fromEnum (SCHEME_JacGInput) = 20
         fromEnum (SCHEME_JacGOutput) = 21
-        fromEnum (SCHEME_LPSolverInput) = 13
-        fromEnum (SCHEME_LPSolverOutput) = 14
         fromEnum (SCHEME_LPStruct) = 15
         fromEnum (SCHEME_LinsolInput) = 11
         fromEnum (SCHEME_LinsolOutput) = 12
+        fromEnum (SCHEME_LpSolverInput) = 13
+        fromEnum (SCHEME_LpSolverOutput) = 14
         fromEnum (SCHEME_MayerInput) = 26
         fromEnum (SCHEME_NLPInput) = 16
         fromEnum (SCHEME_NLPOutput) = 17
-        fromEnum (SCHEME_NLPSolverInput) = 24
-        fromEnum (SCHEME_NLPSolverOutput) = 25
+        fromEnum (SCHEME_NlpSolverInput) = 24
+        fromEnum (SCHEME_NlpSolverOutput) = 25
         fromEnum (SCHEME_OCPInput) = 27
         fromEnum (SCHEME_OCPOutput) = 28
-        fromEnum (SCHEME_QCQPSolverInput) = 29
-        fromEnum (SCHEME_QCQPSolverOutput) = 30
         fromEnum (SCHEME_QCQPStruct) = 31
-        fromEnum (SCHEME_QPSolverInput) = 32
-        fromEnum (SCHEME_QPSolverOutput) = 33
         fromEnum (SCHEME_QPStruct) = 34
+        fromEnum (SCHEME_QcqpSolverInput) = 29
+        fromEnum (SCHEME_QcqpSolverOutput) = 30
+        fromEnum (SCHEME_QpSolverInput) = 32
+        fromEnum (SCHEME_QpSolverOutput) = 33
         fromEnum (SCHEME_RDAEInput) = 7
         fromEnum (SCHEME_RDAEOutput) = 8
         fromEnum (SCHEME_SDPInput) = 35
@@ -396,7 +396,7 @@
         fromEnum (SCHEME_SOCPInput) = 41
         fromEnum (SCHEME_SOCPOutput) = 42
         fromEnum (SCHEME_SOCPStruct) = 43
-        fromEnum (SCHEME_StabilizedQPSolverInput) = 44
+        fromEnum (SCHEME_StabilizedQpSolverInput) = 44
         toEnum (3) = SCHEME_ControlSimulatorInput
         toEnum (2) = SCHEME_ControlledDAEInput
         toEnum (5) = SCHEME_DAEInput
@@ -412,24 +412,24 @@
         toEnum (10) = SCHEME_IntegratorOutput
         toEnum (20) = SCHEME_JacGInput
         toEnum (21) = SCHEME_JacGOutput
-        toEnum (13) = SCHEME_LPSolverInput
-        toEnum (14) = SCHEME_LPSolverOutput
         toEnum (15) = SCHEME_LPStruct
         toEnum (11) = SCHEME_LinsolInput
         toEnum (12) = SCHEME_LinsolOutput
+        toEnum (13) = SCHEME_LpSolverInput
+        toEnum (14) = SCHEME_LpSolverOutput
         toEnum (26) = SCHEME_MayerInput
         toEnum (16) = SCHEME_NLPInput
         toEnum (17) = SCHEME_NLPOutput
-        toEnum (24) = SCHEME_NLPSolverInput
-        toEnum (25) = SCHEME_NLPSolverOutput
+        toEnum (24) = SCHEME_NlpSolverInput
+        toEnum (25) = SCHEME_NlpSolverOutput
         toEnum (27) = SCHEME_OCPInput
         toEnum (28) = SCHEME_OCPOutput
-        toEnum (29) = SCHEME_QCQPSolverInput
-        toEnum (30) = SCHEME_QCQPSolverOutput
         toEnum (31) = SCHEME_QCQPStruct
-        toEnum (32) = SCHEME_QPSolverInput
-        toEnum (33) = SCHEME_QPSolverOutput
         toEnum (34) = SCHEME_QPStruct
+        toEnum (29) = SCHEME_QcqpSolverInput
+        toEnum (30) = SCHEME_QcqpSolverOutput
+        toEnum (32) = SCHEME_QpSolverInput
+        toEnum (33) = SCHEME_QpSolverOutput
         toEnum (7) = SCHEME_RDAEInput
         toEnum (8) = SCHEME_RDAEOutput
         toEnum (35) = SCHEME_SDPInput
@@ -441,7 +441,7 @@
         toEnum (41) = SCHEME_SOCPInput
         toEnum (42) = SCHEME_SOCPOutput
         toEnum (43) = SCHEME_SOCPStruct
-        toEnum (44) = SCHEME_StabilizedQPSolverInput
+        toEnum (44) = SCHEME_StabilizedQpSolverInput
         toEnum k
           = error $ "InputOutputScheme: toEnum: got unhandled number: " ++
               show k
@@ -555,63 +555,6 @@
 instance WrapReturn CInt JacGOutput where
         wrapReturn = return . toEnum . fromIntegral
 
--- EnumDecl: LPSolverInput
-data LPSolverInput = LP_SOLVER_A
-                   | LP_SOLVER_C
-                   | LP_SOLVER_LBA
-                   | LP_SOLVER_LBX
-                   | LP_SOLVER_NUM_IN
-                   | LP_SOLVER_UBA
-                   | LP_SOLVER_UBX
-                   deriving (Show, Eq)
-instance Enum LPSolverInput where
-        fromEnum (LP_SOLVER_A) = 1
-        fromEnum (LP_SOLVER_C) = 0
-        fromEnum (LP_SOLVER_LBA) = 2
-        fromEnum (LP_SOLVER_LBX) = 4
-        fromEnum (LP_SOLVER_NUM_IN) = 6
-        fromEnum (LP_SOLVER_UBA) = 3
-        fromEnum (LP_SOLVER_UBX) = 5
-        toEnum (1) = LP_SOLVER_A
-        toEnum (0) = LP_SOLVER_C
-        toEnum (2) = LP_SOLVER_LBA
-        toEnum (4) = LP_SOLVER_LBX
-        toEnum (6) = LP_SOLVER_NUM_IN
-        toEnum (3) = LP_SOLVER_UBA
-        toEnum (5) = LP_SOLVER_UBX
-        toEnum k
-          = error $ "LPSolverInput: toEnum: got unhandled number: " ++ show k
-instance Marshal LPSolverInput CInt where
-        marshal = return . fromIntegral . fromEnum
-instance WrapReturn CInt LPSolverInput where
-        wrapReturn = return . toEnum . fromIntegral
-
--- EnumDecl: LPSolverOutput
-data LPSolverOutput = LP_SOLVER_COST
-                    | LP_SOLVER_LAM_A
-                    | LP_SOLVER_LAM_X
-                    | LP_SOLVER_NUM_OUT
-                    | LP_SOLVER_X
-                    deriving (Show, Eq)
-instance Enum LPSolverOutput where
-        fromEnum (LP_SOLVER_COST) = 1
-        fromEnum (LP_SOLVER_LAM_A) = 2
-        fromEnum (LP_SOLVER_LAM_X) = 3
-        fromEnum (LP_SOLVER_NUM_OUT) = 4
-        fromEnum (LP_SOLVER_X) = 0
-        toEnum (1) = LP_SOLVER_COST
-        toEnum (2) = LP_SOLVER_LAM_A
-        toEnum (3) = LP_SOLVER_LAM_X
-        toEnum (4) = LP_SOLVER_NUM_OUT
-        toEnum (0) = LP_SOLVER_X
-        toEnum k
-          = error $ "LPSolverOutput: toEnum: got unhandled number: " ++
-              show k
-instance Marshal LPSolverOutput CInt where
-        marshal = return . fromIntegral . fromEnum
-instance WrapReturn CInt LPSolverOutput where
-        wrapReturn = return . toEnum . fromIntegral
-
 -- EnumDecl: LPStruct
 data LPStruct = LP_STRUCT_A
               | LP_STRUCT_NUM
@@ -663,6 +606,63 @@
 instance WrapReturn CInt LinsolOutput where
         wrapReturn = return . toEnum . fromIntegral
 
+-- EnumDecl: LpSolverInput
+data LpSolverInput = LP_SOLVER_A
+                   | LP_SOLVER_C
+                   | LP_SOLVER_LBA
+                   | LP_SOLVER_LBX
+                   | LP_SOLVER_NUM_IN
+                   | LP_SOLVER_UBA
+                   | LP_SOLVER_UBX
+                   deriving (Show, Eq)
+instance Enum LpSolverInput where
+        fromEnum (LP_SOLVER_A) = 1
+        fromEnum (LP_SOLVER_C) = 0
+        fromEnum (LP_SOLVER_LBA) = 2
+        fromEnum (LP_SOLVER_LBX) = 4
+        fromEnum (LP_SOLVER_NUM_IN) = 6
+        fromEnum (LP_SOLVER_UBA) = 3
+        fromEnum (LP_SOLVER_UBX) = 5
+        toEnum (1) = LP_SOLVER_A
+        toEnum (0) = LP_SOLVER_C
+        toEnum (2) = LP_SOLVER_LBA
+        toEnum (4) = LP_SOLVER_LBX
+        toEnum (6) = LP_SOLVER_NUM_IN
+        toEnum (3) = LP_SOLVER_UBA
+        toEnum (5) = LP_SOLVER_UBX
+        toEnum k
+          = error $ "LpSolverInput: toEnum: got unhandled number: " ++ show k
+instance Marshal LpSolverInput CInt where
+        marshal = return . fromIntegral . fromEnum
+instance WrapReturn CInt LpSolverInput where
+        wrapReturn = return . toEnum . fromIntegral
+
+-- EnumDecl: LpSolverOutput
+data LpSolverOutput = LP_SOLVER_COST
+                    | LP_SOLVER_LAM_A
+                    | LP_SOLVER_LAM_X
+                    | LP_SOLVER_NUM_OUT
+                    | LP_SOLVER_X
+                    deriving (Show, Eq)
+instance Enum LpSolverOutput where
+        fromEnum (LP_SOLVER_COST) = 1
+        fromEnum (LP_SOLVER_LAM_A) = 2
+        fromEnum (LP_SOLVER_LAM_X) = 3
+        fromEnum (LP_SOLVER_NUM_OUT) = 4
+        fromEnum (LP_SOLVER_X) = 0
+        toEnum (1) = LP_SOLVER_COST
+        toEnum (2) = LP_SOLVER_LAM_A
+        toEnum (3) = LP_SOLVER_LAM_X
+        toEnum (4) = LP_SOLVER_NUM_OUT
+        toEnum (0) = LP_SOLVER_X
+        toEnum k
+          = error $ "LpSolverOutput: toEnum: got unhandled number: " ++
+              show k
+instance Marshal LpSolverOutput CInt where
+        marshal = return . fromIntegral . fromEnum
+instance WrapReturn CInt LpSolverOutput where
+        wrapReturn = return . toEnum . fromIntegral
+
 -- EnumDecl: MayerInput
 data MayerInput = MAYER_NUM_IN
                 | MAYER_P
@@ -720,8 +720,8 @@
 instance WrapReturn CInt NLPOutput where
         wrapReturn = return . toEnum . fromIntegral
 
--- EnumDecl: NLPSolverInput
-data NLPSolverInput = NLP_SOLVER_LAM_G0
+-- EnumDecl: NlpSolverInput
+data NlpSolverInput = NLP_SOLVER_LAM_G0
                     | NLP_SOLVER_LAM_X0
                     | NLP_SOLVER_LBG
                     | NLP_SOLVER_LBX
@@ -731,7 +731,7 @@
                     | NLP_SOLVER_UBX
                     | NLP_SOLVER_X0
                     deriving (Show, Eq)
-instance Enum NLPSolverInput where
+instance Enum NlpSolverInput where
         fromEnum (NLP_SOLVER_LAM_G0) = 7
         fromEnum (NLP_SOLVER_LAM_X0) = 6
         fromEnum (NLP_SOLVER_LBG) = 4
@@ -751,15 +751,15 @@
         toEnum (3) = NLP_SOLVER_UBX
         toEnum (0) = NLP_SOLVER_X0
         toEnum k
-          = error $ "NLPSolverInput: toEnum: got unhandled number: " ++
+          = error $ "NlpSolverInput: toEnum: got unhandled number: " ++
               show k
-instance Marshal NLPSolverInput CInt where
+instance Marshal NlpSolverInput CInt where
         marshal = return . fromIntegral . fromEnum
-instance WrapReturn CInt NLPSolverInput where
+instance WrapReturn CInt NlpSolverInput where
         wrapReturn = return . toEnum . fromIntegral
 
--- EnumDecl: NLPSolverOutput
-data NLPSolverOutput = NLP_SOLVER_F
+-- EnumDecl: NlpSolverOutput
+data NlpSolverOutput = NLP_SOLVER_F
                      | NLP_SOLVER_G
                      | NLP_SOLVER_LAM_G
                      | NLP_SOLVER_LAM_P
@@ -767,7 +767,7 @@
                      | NLP_SOLVER_NUM_OUT
                      | NLP_SOLVER_X
                      deriving (Show, Eq)
-instance Enum NLPSolverOutput where
+instance Enum NlpSolverOutput where
         fromEnum (NLP_SOLVER_F) = 1
         fromEnum (NLP_SOLVER_G) = 2
         fromEnum (NLP_SOLVER_LAM_G) = 4
@@ -783,11 +783,11 @@
         toEnum (6) = NLP_SOLVER_NUM_OUT
         toEnum (0) = NLP_SOLVER_X
         toEnum k
-          = error $ "NLPSolverOutput: toEnum: got unhandled number: " ++
+          = error $ "NlpSolverOutput: toEnum: got unhandled number: " ++
               show k
-instance Marshal NLPSolverOutput CInt where
+instance Marshal NlpSolverOutput CInt where
         marshal = return . fromIntegral . fromEnum
-instance WrapReturn CInt NLPSolverOutput where
+instance WrapReturn CInt NlpSolverOutput where
         wrapReturn = return . toEnum . fromIntegral
 
 -- EnumDecl: OCPInput
@@ -1102,8 +1102,49 @@
 instance WrapReturn CInt Operation where
         wrapReturn = return . toEnum . fromIntegral
 
--- EnumDecl: QCQPSolverInput
-data QCQPSolverInput = QCQP_SOLVER_A
+-- EnumDecl: QCQPStruct
+data QCQPStruct = QCQP_STRUCT_A
+                | QCQP_STRUCT_H
+                | QCQP_STRUCT_NUM
+                | QCQP_STRUCT_P
+                deriving (Show, Eq)
+instance Enum QCQPStruct where
+        fromEnum (QCQP_STRUCT_A) = 2
+        fromEnum (QCQP_STRUCT_H) = 0
+        fromEnum (QCQP_STRUCT_NUM) = 3
+        fromEnum (QCQP_STRUCT_P) = 1
+        toEnum (2) = QCQP_STRUCT_A
+        toEnum (0) = QCQP_STRUCT_H
+        toEnum (3) = QCQP_STRUCT_NUM
+        toEnum (1) = QCQP_STRUCT_P
+        toEnum k
+          = error $ "QCQPStruct: toEnum: got unhandled number: " ++ show k
+instance Marshal QCQPStruct CInt where
+        marshal = return . fromIntegral . fromEnum
+instance WrapReturn CInt QCQPStruct where
+        wrapReturn = return . toEnum . fromIntegral
+
+-- EnumDecl: QPStruct
+data QPStruct = QP_STRUCT_A
+              | QP_STRUCT_H
+              | QP_STRUCT_NUM
+              deriving (Show, Eq)
+instance Enum QPStruct where
+        fromEnum (QP_STRUCT_A) = 1
+        fromEnum (QP_STRUCT_H) = 0
+        fromEnum (QP_STRUCT_NUM) = 2
+        toEnum (1) = QP_STRUCT_A
+        toEnum (0) = QP_STRUCT_H
+        toEnum (2) = QP_STRUCT_NUM
+        toEnum k
+          = error $ "QPStruct: toEnum: got unhandled number: " ++ show k
+instance Marshal QPStruct CInt where
+        marshal = return . fromIntegral . fromEnum
+instance WrapReturn CInt QPStruct where
+        wrapReturn = return . toEnum . fromIntegral
+
+-- EnumDecl: QcqpSolverInput
+data QcqpSolverInput = QCQP_SOLVER_A
                      | QCQP_SOLVER_G
                      | QCQP_SOLVER_H
                      | QCQP_SOLVER_LAM_X0
@@ -1117,7 +1158,7 @@
                      | QCQP_SOLVER_UBX
                      | QCQP_SOLVER_X0
                      deriving (Show, Eq)
-instance Enum QCQPSolverInput where
+instance Enum QcqpSolverInput where
         fromEnum (QCQP_SOLVER_A) = 5
         fromEnum (QCQP_SOLVER_G) = 1
         fromEnum (QCQP_SOLVER_H) = 0
@@ -1145,21 +1186,21 @@
         toEnum (9) = QCQP_SOLVER_UBX
         toEnum (10) = QCQP_SOLVER_X0
         toEnum k
-          = error $ "QCQPSolverInput: toEnum: got unhandled number: " ++
+          = error $ "QcqpSolverInput: toEnum: got unhandled number: " ++
               show k
-instance Marshal QCQPSolverInput CInt where
+instance Marshal QcqpSolverInput CInt where
         marshal = return . fromIntegral . fromEnum
-instance WrapReturn CInt QCQPSolverInput where
+instance WrapReturn CInt QcqpSolverInput where
         wrapReturn = return . toEnum . fromIntegral
 
--- EnumDecl: QCQPSolverOutput
-data QCQPSolverOutput = QCQP_SOLVER_COST
+-- EnumDecl: QcqpSolverOutput
+data QcqpSolverOutput = QCQP_SOLVER_COST
                       | QCQP_SOLVER_LAM_A
                       | QCQP_SOLVER_LAM_X
                       | QCQP_SOLVER_NUM_OUT
                       | QCQP_SOLVER_X
                       deriving (Show, Eq)
-instance Enum QCQPSolverOutput where
+instance Enum QcqpSolverOutput where
         fromEnum (QCQP_SOLVER_COST) = 1
         fromEnum (QCQP_SOLVER_LAM_A) = 2
         fromEnum (QCQP_SOLVER_LAM_X) = 3
@@ -1171,37 +1212,15 @@
         toEnum (4) = QCQP_SOLVER_NUM_OUT
         toEnum (0) = QCQP_SOLVER_X
         toEnum k
-          = error $ "QCQPSolverOutput: toEnum: got unhandled number: " ++
+          = error $ "QcqpSolverOutput: toEnum: got unhandled number: " ++
               show k
-instance Marshal QCQPSolverOutput CInt where
-        marshal = return . fromIntegral . fromEnum
-instance WrapReturn CInt QCQPSolverOutput where
-        wrapReturn = return . toEnum . fromIntegral
-
--- EnumDecl: QCQPStruct
-data QCQPStruct = QCQP_STRUCT_A
-                | QCQP_STRUCT_H
-                | QCQP_STRUCT_NUM
-                | QCQP_STRUCT_P
-                deriving (Show, Eq)
-instance Enum QCQPStruct where
-        fromEnum (QCQP_STRUCT_A) = 2
-        fromEnum (QCQP_STRUCT_H) = 0
-        fromEnum (QCQP_STRUCT_NUM) = 3
-        fromEnum (QCQP_STRUCT_P) = 1
-        toEnum (2) = QCQP_STRUCT_A
-        toEnum (0) = QCQP_STRUCT_H
-        toEnum (3) = QCQP_STRUCT_NUM
-        toEnum (1) = QCQP_STRUCT_P
-        toEnum k
-          = error $ "QCQPStruct: toEnum: got unhandled number: " ++ show k
-instance Marshal QCQPStruct CInt where
+instance Marshal QcqpSolverOutput CInt where
         marshal = return . fromIntegral . fromEnum
-instance WrapReturn CInt QCQPStruct where
+instance WrapReturn CInt QcqpSolverOutput where
         wrapReturn = return . toEnum . fromIntegral
 
--- EnumDecl: QPSolverInput
-data QPSolverInput = QP_SOLVER_A
+-- EnumDecl: QpSolverInput
+data QpSolverInput = QP_SOLVER_A
                    | QP_SOLVER_G
                    | QP_SOLVER_H
                    | QP_SOLVER_LAM_X0
@@ -1212,7 +1231,7 @@
                    | QP_SOLVER_UBX
                    | QP_SOLVER_X0
                    deriving (Show, Eq)
-instance Enum QPSolverInput where
+instance Enum QpSolverInput where
         fromEnum (QP_SOLVER_A) = 2
         fromEnum (QP_SOLVER_G) = 1
         fromEnum (QP_SOLVER_H) = 0
@@ -1234,20 +1253,20 @@
         toEnum (6) = QP_SOLVER_UBX
         toEnum (7) = QP_SOLVER_X0
         toEnum k
-          = error $ "QPSolverInput: toEnum: got unhandled number: " ++ show k
-instance Marshal QPSolverInput CInt where
+          = error $ "QpSolverInput: toEnum: got unhandled number: " ++ show k
+instance Marshal QpSolverInput CInt where
         marshal = return . fromIntegral . fromEnum
-instance WrapReturn CInt QPSolverInput where
+instance WrapReturn CInt QpSolverInput where
         wrapReturn = return . toEnum . fromIntegral
 
--- EnumDecl: QPSolverOutput
-data QPSolverOutput = QP_SOLVER_COST
+-- EnumDecl: QpSolverOutput
+data QpSolverOutput = QP_SOLVER_COST
                     | QP_SOLVER_LAM_A
                     | QP_SOLVER_LAM_X
                     | QP_SOLVER_NUM_OUT
                     | QP_SOLVER_X
                     deriving (Show, Eq)
-instance Enum QPSolverOutput where
+instance Enum QpSolverOutput where
         fromEnum (QP_SOLVER_COST) = 1
         fromEnum (QP_SOLVER_LAM_A) = 2
         fromEnum (QP_SOLVER_LAM_X) = 3
@@ -1259,30 +1278,11 @@
         toEnum (4) = QP_SOLVER_NUM_OUT
         toEnum (0) = QP_SOLVER_X
         toEnum k
-          = error $ "QPSolverOutput: toEnum: got unhandled number: " ++
+          = error $ "QpSolverOutput: toEnum: got unhandled number: " ++
               show k
-instance Marshal QPSolverOutput CInt where
-        marshal = return . fromIntegral . fromEnum
-instance WrapReturn CInt QPSolverOutput where
-        wrapReturn = return . toEnum . fromIntegral
-
--- EnumDecl: QPStruct
-data QPStruct = QP_STRUCT_A
-              | QP_STRUCT_H
-              | QP_STRUCT_NUM
-              deriving (Show, Eq)
-instance Enum QPStruct where
-        fromEnum (QP_STRUCT_A) = 1
-        fromEnum (QP_STRUCT_H) = 0
-        fromEnum (QP_STRUCT_NUM) = 2
-        toEnum (1) = QP_STRUCT_A
-        toEnum (0) = QP_STRUCT_H
-        toEnum (2) = QP_STRUCT_NUM
-        toEnum k
-          = error $ "QPStruct: toEnum: got unhandled number: " ++ show k
-instance Marshal QPStruct CInt where
+instance Marshal QpSolverOutput CInt where
         marshal = return . fromIntegral . fromEnum
-instance WrapReturn CInt QPStruct where
+instance WrapReturn CInt QpSolverOutput where
         wrapReturn = return . toEnum . fromIntegral
 
 -- EnumDecl: RDAEInput
@@ -1645,8 +1645,8 @@
 instance WrapReturn CInt SparsityType where
         wrapReturn = return . toEnum . fromIntegral
 
--- EnumDecl: StabilizedQPSolverInput
-data StabilizedQPSolverInput = STABILIZED_QP_SOLVER_A
+-- EnumDecl: StabilizedQpSolverInput
+data StabilizedQpSolverInput = STABILIZED_QP_SOLVER_A
                              | STABILIZED_QP_SOLVER_G
                              | STABILIZED_QP_SOLVER_H
                              | STABILIZED_QP_SOLVER_LAM_X0
@@ -1660,7 +1660,7 @@
                              | STABILIZED_QP_SOLVER_UBX
                              | STABILIZED_QP_SOLVER_X0
                              deriving (Show, Eq)
-instance Enum StabilizedQPSolverInput where
+instance Enum StabilizedQpSolverInput where
         fromEnum (STABILIZED_QP_SOLVER_A) = 2
         fromEnum (STABILIZED_QP_SOLVER_G) = 1
         fromEnum (STABILIZED_QP_SOLVER_H) = 0
@@ -1688,11 +1688,11 @@
         toEnum (6) = STABILIZED_QP_SOLVER_UBX
         toEnum (7) = STABILIZED_QP_SOLVER_X0
         toEnum k
-          = error $ "StabilizedQPSolverInput: toEnum: got unhandled number: "
+          = error $ "StabilizedQpSolverInput: toEnum: got unhandled number: "
               ++ show k
-instance Marshal StabilizedQPSolverInput CInt where
+instance Marshal StabilizedQpSolverInput CInt where
         marshal = return . fromIntegral . fromEnum
-instance WrapReturn CInt StabilizedQPSolverInput where
+instance WrapReturn CInt StabilizedQpSolverInput where
         wrapReturn = return . toEnum . fromIntegral
 
 -- EnumDecl: Type
diff --git a/Casadi/Core/Tools.hs b/Casadi/Core/Tools.hs
--- a/Casadi/Core/Tools.hs
+++ b/Casadi/Core/Tools.hs
@@ -3960,7 +3960,7 @@
 >
 >f:  dynamical system
 >
->>Input scheme: casadi::DAEInput (DAE_NUM_IN = 5) [daeIn]
+>>Input scheme: casadi::DAEInput (DAE_NUM_IN = 4) [daeIn]
 >+-----------+-------+----------------------------+
 >| Full name | Short |        Description         |
 >+===========+=======+============================+
@@ -3973,7 +3973,7 @@
 >| DAE_T     | t     | Explicit time dependence . |
 >+-----------+-------+----------------------------+
 >
->>Output scheme: casadi::DAEOutput (DAE_NUM_OUT = 4) [daeOut]
+>>Output scheme: casadi::DAEOutput (DAE_NUM_OUT = 3) [daeOut]
 >+-----------+-------+--------------------------------------------+
 >| Full name | Short |                Description                 |
 >+===========+=======+============================================+
@@ -4016,7 +4016,7 @@
 >
 >f:  dynamical system
 >
->>Input scheme: casadi::DAEInput (DAE_NUM_IN = 5) [daeIn]
+>>Input scheme: casadi::DAEInput (DAE_NUM_IN = 4) [daeIn]
 >+-----------+-------+----------------------------+
 >| Full name | Short |        Description         |
 >+===========+=======+============================+
@@ -4029,7 +4029,7 @@
 >| DAE_T     | t     | Explicit time dependence . |
 >+-----------+-------+----------------------------+
 >
->>Output scheme: casadi::DAEOutput (DAE_NUM_OUT = 4) [daeOut]
+>>Output scheme: casadi::DAEOutput (DAE_NUM_OUT = 3) [daeOut]
 >+-----------+-------+--------------------------------------------+
 >| Full name | Short |                Description                 |
 >+===========+=======+============================================+
@@ -4073,7 +4073,7 @@
 >
 >f:  dynamical system
 >
->>Input scheme: casadi::DAEInput (DAE_NUM_IN = 5) [daeIn]
+>>Input scheme: casadi::DAEInput (DAE_NUM_IN = 4) [daeIn]
 >+-----------+-------+----------------------------+
 >| Full name | Short |        Description         |
 >+===========+=======+============================+
@@ -4086,7 +4086,7 @@
 >| DAE_T     | t     | Explicit time dependence . |
 >+-----------+-------+----------------------------+
 >
->>Output scheme: casadi::DAEOutput (DAE_NUM_OUT = 4) [daeOut]
+>>Output scheme: casadi::DAEOutput (DAE_NUM_OUT = 3) [daeOut]
 >+-----------+-------+--------------------------------------------+
 >| Full name | Short |                Description                 |
 >+===========+=======+============================================+
@@ -4131,7 +4131,7 @@
 >
 >f:  dynamical system
 >
->>Input scheme: casadi::DAEInput (DAE_NUM_IN = 5) [daeIn]
+>>Input scheme: casadi::DAEInput (DAE_NUM_IN = 4) [daeIn]
 >+-----------+-------+----------------------------+
 >| Full name | Short |        Description         |
 >+===========+=======+============================+
@@ -4144,7 +4144,7 @@
 >| DAE_T     | t     | Explicit time dependence . |
 >+-----------+-------+----------------------------+
 >
->>Output scheme: casadi::DAEOutput (DAE_NUM_OUT = 4) [daeOut]
+>>Output scheme: casadi::DAEOutput (DAE_NUM_OUT = 3) [daeOut]
 >+-----------+-------+--------------------------------------------+
 >| Full name | Short |                Description                 |
 >+===========+=======+============================================+
@@ -6275,7 +6275,7 @@
 >
 >f:  dynamical system
 >
->>Input scheme: casadi::DAEInput (DAE_NUM_IN = 5) [daeIn]
+>>Input scheme: casadi::DAEInput (DAE_NUM_IN = 4) [daeIn]
 >+-----------+-------+----------------------------+
 >| Full name | Short |        Description         |
 >+===========+=======+============================+
@@ -6288,7 +6288,7 @@
 >| DAE_T     | t     | Explicit time dependence . |
 >+-----------+-------+----------------------------+
 >
->>Output scheme: casadi::DAEOutput (DAE_NUM_OUT = 4) [daeOut]
+>>Output scheme: casadi::DAEOutput (DAE_NUM_OUT = 3) [daeOut]
 >+-----------+-------+--------------------------------------------+
 >| Full name | Short |                Description                 |
 >+===========+=======+============================================+
diff --git a/casadi-bindings-core.cabal b/casadi-bindings-core.cabal
--- a/casadi-bindings-core.cabal
+++ b/casadi-bindings-core.cabal
@@ -1,5 +1,5 @@
 name:                casadi-bindings-core
-version:             1.9.0.4
+version:             1.9.0.5
 license:             LGPL-3
 license-file:        LICENSE
 category:            Numerical, Math
@@ -48,33 +48,33 @@
                     Casadi.Core.Classes.Function
                     Casadi.Core.Classes.Functor
                     Casadi.Core.Classes.GenericType
-                    Casadi.Core.Classes.HomotopyNLPSolver
+                    Casadi.Core.Classes.HomotopyNlpSolver
                     Casadi.Core.Classes.IMatrix
                     Casadi.Core.Classes.IOScheme
                     Casadi.Core.Classes.ImplicitFunction
                     Casadi.Core.Classes.Integrator
-                    Casadi.Core.Classes.LPSolver
                     Casadi.Core.Classes.LinearSolver
+                    Casadi.Core.Classes.LpSolver
                     Casadi.Core.Classes.MX
                     Casadi.Core.Classes.MXFunction
-                    Casadi.Core.Classes.NLPSolver
+                    Casadi.Core.Classes.NlpSolver
                     Casadi.Core.Classes.Nullspace
                     Casadi.Core.Classes.OCPSolver
                     Casadi.Core.Classes.OptionsFunctionality
                     Casadi.Core.Classes.Parallelizer
                     Casadi.Core.Classes.PrintableObject
-                    Casadi.Core.Classes.QCQPSolver
-                    Casadi.Core.Classes.QPSolver
-                    Casadi.Core.Classes.SDPSolver
-                    Casadi.Core.Classes.SDQPSolver
-                    Casadi.Core.Classes.SOCPSolver
+                    Casadi.Core.Classes.QcqpSolver
+                    Casadi.Core.Classes.QpSolver
                     Casadi.Core.Classes.SX
                     Casadi.Core.Classes.SXElement
                     Casadi.Core.Classes.SXFunction
+                    Casadi.Core.Classes.SdpSolver
+                    Casadi.Core.Classes.SdqpSolver
                     Casadi.Core.Classes.SharedObject
                     Casadi.Core.Classes.Simulator
                     Casadi.Core.Classes.Slice
+                    Casadi.Core.Classes.SocpSolver
                     Casadi.Core.Classes.Sparsity
-                    Casadi.Core.Classes.StabilizedQPSolver
+                    Casadi.Core.Classes.StabilizedQpSolver
                     Casadi.Core.Classes.SymbolicNLP
                     Casadi.Core.Classes.IOInterfaceFunction
diff --git a/cbits/autogen/core_classes.cpp b/cbits/autogen/core_classes.cpp
# file too large to diff: cbits/autogen/core_classes.cpp
