diff --git a/Casadi/Core/Classes/CasadiOptions.hs b/Casadi/Core/Classes/CasadiOptions.hs
--- a/Casadi/Core/Classes/CasadiOptions.hs
+++ b/Casadi/Core/Classes/CasadiOptions.hs
@@ -10,10 +10,12 @@
          CasadiOptions,
          CasadiOptionsClass(..),
          casadiOptions_getAllowedInternalAPI,
+         casadiOptions_getCasadiPath,
          casadiOptions_getCatchErrorsSwig,
          casadiOptions_getProfilingBinary,
          casadiOptions_getSimplificationOnTheFly,
          casadiOptions_setAllowedInternalAPI,
+         casadiOptions_setCasadiPath,
          casadiOptions_setCatchErrorsSwig,
          casadiOptions_setProfilingBinary,
          casadiOptions_setPurgeSeeds__0,
@@ -62,6 +64,26 @@
 
 
 -- direct wrapper
+foreign import ccall unsafe "casadi__CasadiOptions__getCasadiPath" c_casadi__CasadiOptions__getCasadiPath
+  :: Ptr (Ptr StdString) -> IO (Ptr StdString)
+casadi__CasadiOptions__getCasadiPath
+  :: IO String
+casadi__CasadiOptions__getCasadiPath  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__CasadiOptions__getCasadiPath errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+casadiOptions_getCasadiPath :: IO String
+casadiOptions_getCasadiPath = casadi__CasadiOptions__getCasadiPath
+
+
+-- direct wrapper
 foreign import ccall unsafe "casadi__CasadiOptions__getCatchErrorsSwig" c_casadi__CasadiOptions__getCatchErrorsSwig
   :: Ptr (Ptr StdString) -> IO CInt
 casadi__CasadiOptions__getCatchErrorsSwig
@@ -139,6 +161,26 @@
 -- classy wrapper
 casadiOptions_setAllowedInternalAPI :: Bool -> IO ()
 casadiOptions_setAllowedInternalAPI = casadi__CasadiOptions__setAllowedInternalAPI
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__CasadiOptions__setCasadiPath" c_casadi__CasadiOptions__setCasadiPath
+  :: Ptr (Ptr StdString) -> Ptr StdString -> IO ()
+casadi__CasadiOptions__setCasadiPath
+  :: String -> IO ()
+casadi__CasadiOptions__setCasadiPath x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__CasadiOptions__setCasadiPath errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+casadiOptions_setCasadiPath :: String -> IO ()
+casadiOptions_setCasadiPath = casadi__CasadiOptions__setCasadiPath
 
 
 -- 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
@@ -12,7 +12,6 @@
          dmatrix_T,
          dmatrix__0,
          dmatrix__1,
-         dmatrix__10,
          dmatrix__2,
          dmatrix__3,
          dmatrix__4,
@@ -20,7 +19,6 @@
          dmatrix__6,
          dmatrix__7,
          dmatrix__8,
-         dmatrix__9,
          dmatrix___constpow__,
          dmatrix___copysign__,
          dmatrix___mldivide__,
@@ -55,7 +53,6 @@
          dmatrix_getNZ__0,
          dmatrix_getNZ__1,
          dmatrix_getNZ__2,
-         dmatrix_getNZ__3,
          dmatrix_getName,
          dmatrix_getNdeps,
          dmatrix_getRepresentation,
@@ -66,15 +63,12 @@
          dmatrix_getValue__1,
          dmatrix_get__0,
          dmatrix_get__1,
-         dmatrix_get__10,
          dmatrix_get__2,
          dmatrix_get__3,
          dmatrix_get__4,
          dmatrix_get__5,
          dmatrix_get__6,
          dmatrix_get__7,
-         dmatrix_get__8,
-         dmatrix_get__9,
          dmatrix_hasNZ,
          dmatrix_hasNonStructuralZeros,
          dmatrix_inf__0,
@@ -368,9 +362,9 @@
 import Casadi.Core.Enums
 -- direct wrapper
 foreign import ccall unsafe "casadi__DMatrix__CONSTRUCTOR__0" c_casadi__DMatrix__CONSTRUCTOR__0
-  :: Ptr (Ptr StdString) -> Ptr (StdVec CDouble) -> IO (Ptr DMatrix')
+  :: Ptr (Ptr StdString) -> Ptr (StdVec CInt) -> IO (Ptr DMatrix')
 casadi__DMatrix__CONSTRUCTOR__0
-  :: Vector Double -> IO DMatrix
+  :: Vector Int -> IO DMatrix
 casadi__DMatrix__CONSTRUCTOR__0 x0 =
   withMarshal x0 $ \x0' ->
   do
@@ -382,36 +376,35 @@
 
 
 -- classy wrapper
-dmatrix__0 :: Vector Double -> IO DMatrix
+dmatrix__0 :: Vector Int -> IO DMatrix
 dmatrix__0 = casadi__DMatrix__CONSTRUCTOR__0
 
 
 -- direct wrapper
 foreign import ccall unsafe "casadi__DMatrix__CONSTRUCTOR__1" c_casadi__DMatrix__CONSTRUCTOR__1
-  :: Ptr (Ptr StdString) -> Ptr Sparsity' -> Ptr (StdVec CDouble) -> IO (Ptr DMatrix')
+  :: Ptr (Ptr StdString) -> Ptr IMatrix' -> IO (Ptr DMatrix')
 casadi__DMatrix__CONSTRUCTOR__1
-  :: Sparsity -> Vector Double -> IO DMatrix
-casadi__DMatrix__CONSTRUCTOR__1 x0 x1 =
+  :: IMatrix -> IO DMatrix
+casadi__DMatrix__CONSTRUCTOR__1 x0 =
   withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_casadi__DMatrix__CONSTRUCTOR__1 errStrPtrP x0' x1'
+    ret <- c_casadi__DMatrix__CONSTRUCTOR__1 errStrPtrP x0'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
 -- classy wrapper
-dmatrix__1 :: Sparsity -> Vector Double -> IO DMatrix
+dmatrix__1 :: IMatrix -> IO DMatrix
 dmatrix__1 = casadi__DMatrix__CONSTRUCTOR__1
 
 
 -- direct wrapper
 foreign import ccall unsafe "casadi__DMatrix__CONSTRUCTOR__2" c_casadi__DMatrix__CONSTRUCTOR__2
-  :: Ptr (Ptr StdString) -> Ptr (StdVec CInt) -> IO (Ptr DMatrix')
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr (StdVec CDouble))) -> IO (Ptr DMatrix')
 casadi__DMatrix__CONSTRUCTOR__2
-  :: Vector Int -> IO DMatrix
+  :: Vector (Vector Double) -> IO DMatrix
 casadi__DMatrix__CONSTRUCTOR__2 x0 =
   withMarshal x0 $ \x0' ->
   do
@@ -423,15 +416,15 @@
 
 
 -- classy wrapper
-dmatrix__2 :: Vector Int -> IO DMatrix
+dmatrix__2 :: Vector (Vector Double) -> IO DMatrix
 dmatrix__2 = casadi__DMatrix__CONSTRUCTOR__2
 
 
 -- direct wrapper
 foreign import ccall unsafe "casadi__DMatrix__CONSTRUCTOR__3" c_casadi__DMatrix__CONSTRUCTOR__3
-  :: Ptr (Ptr StdString) -> Ptr IMatrix' -> IO (Ptr DMatrix')
+  :: Ptr (Ptr StdString) -> CDouble -> IO (Ptr DMatrix')
 casadi__DMatrix__CONSTRUCTOR__3
-  :: IMatrix -> IO DMatrix
+  :: Double -> IO DMatrix
 casadi__DMatrix__CONSTRUCTOR__3 x0 =
   withMarshal x0 $ \x0' ->
   do
@@ -443,35 +436,36 @@
 
 
 -- classy wrapper
-dmatrix__3 :: IMatrix -> IO DMatrix
+dmatrix__3 :: Double -> IO DMatrix
 dmatrix__3 = casadi__DMatrix__CONSTRUCTOR__3
 
 
 -- direct wrapper
 foreign import ccall unsafe "casadi__DMatrix__CONSTRUCTOR__4" c_casadi__DMatrix__CONSTRUCTOR__4
-  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr (StdVec CDouble))) -> IO (Ptr DMatrix')
+  :: Ptr (Ptr StdString) -> Ptr Sparsity' -> Ptr DMatrix' -> IO (Ptr DMatrix')
 casadi__DMatrix__CONSTRUCTOR__4
-  :: Vector (Vector Double) -> IO DMatrix
-casadi__DMatrix__CONSTRUCTOR__4 x0 =
+  :: Sparsity -> DMatrix -> IO DMatrix
+casadi__DMatrix__CONSTRUCTOR__4 x0 x1 =
   withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_casadi__DMatrix__CONSTRUCTOR__4 errStrPtrP x0'
+    ret <- c_casadi__DMatrix__CONSTRUCTOR__4 errStrPtrP x0' x1'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
 -- classy wrapper
-dmatrix__4 :: Vector (Vector Double) -> IO DMatrix
+dmatrix__4 :: Sparsity -> DMatrix -> IO DMatrix
 dmatrix__4 = casadi__DMatrix__CONSTRUCTOR__4
 
 
 -- direct wrapper
 foreign import ccall unsafe "casadi__DMatrix__CONSTRUCTOR__5" c_casadi__DMatrix__CONSTRUCTOR__5
-  :: Ptr (Ptr StdString) -> CDouble -> IO (Ptr DMatrix')
+  :: Ptr (Ptr StdString) -> Ptr Sparsity' -> IO (Ptr DMatrix')
 casadi__DMatrix__CONSTRUCTOR__5
-  :: Double -> IO DMatrix
+  :: Sparsity -> IO DMatrix
 casadi__DMatrix__CONSTRUCTOR__5 x0 =
   withMarshal x0 $ \x0' ->
   do
@@ -483,15 +477,15 @@
 
 
 -- classy wrapper
-dmatrix__5 :: Double -> IO DMatrix
+dmatrix__5 :: Sparsity -> IO DMatrix
 dmatrix__5 = casadi__DMatrix__CONSTRUCTOR__5
 
 
 -- direct wrapper
 foreign import ccall unsafe "casadi__DMatrix__CONSTRUCTOR__6" c_casadi__DMatrix__CONSTRUCTOR__6
-  :: Ptr (Ptr StdString) -> Ptr Sparsity' -> Ptr DMatrix' -> IO (Ptr DMatrix')
+  :: Ptr (Ptr StdString) -> CInt -> CInt -> IO (Ptr DMatrix')
 casadi__DMatrix__CONSTRUCTOR__6
-  :: Sparsity -> DMatrix -> IO DMatrix
+  :: Int -> Int -> IO DMatrix
 casadi__DMatrix__CONSTRUCTOR__6 x0 x1 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
@@ -504,15 +498,15 @@
 
 
 -- classy wrapper
-dmatrix__6 :: Sparsity -> DMatrix -> IO DMatrix
+dmatrix__6 :: Int -> Int -> IO DMatrix
 dmatrix__6 = casadi__DMatrix__CONSTRUCTOR__6
 
 
 -- direct wrapper
 foreign import ccall unsafe "casadi__DMatrix__CONSTRUCTOR__7" c_casadi__DMatrix__CONSTRUCTOR__7
-  :: Ptr (Ptr StdString) -> Ptr Sparsity' -> IO (Ptr DMatrix')
+  :: Ptr (Ptr StdString) -> Ptr DMatrix' -> IO (Ptr DMatrix')
 casadi__DMatrix__CONSTRUCTOR__7
-  :: Sparsity -> IO DMatrix
+  :: DMatrix -> IO DMatrix
 casadi__DMatrix__CONSTRUCTOR__7 x0 =
   withMarshal x0 $ \x0' ->
   do
@@ -524,69 +518,28 @@
 
 
 -- classy wrapper
-dmatrix__7 :: Sparsity -> IO DMatrix
+dmatrix__7 :: DMatrix -> IO DMatrix
 dmatrix__7 = casadi__DMatrix__CONSTRUCTOR__7
 
 
 -- direct wrapper
 foreign import ccall unsafe "casadi__DMatrix__CONSTRUCTOR__8" c_casadi__DMatrix__CONSTRUCTOR__8
-  :: Ptr (Ptr StdString) -> CInt -> CInt -> IO (Ptr DMatrix')
-casadi__DMatrix__CONSTRUCTOR__8
-  :: Int -> Int -> IO DMatrix
-casadi__DMatrix__CONSTRUCTOR__8 x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__DMatrix__CONSTRUCTOR__8 errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-dmatrix__8 :: Int -> Int -> IO DMatrix
-dmatrix__8 = casadi__DMatrix__CONSTRUCTOR__8
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__DMatrix__CONSTRUCTOR__9" c_casadi__DMatrix__CONSTRUCTOR__9
-  :: Ptr (Ptr StdString) -> Ptr DMatrix' -> IO (Ptr DMatrix')
-casadi__DMatrix__CONSTRUCTOR__9
-  :: DMatrix -> IO DMatrix
-casadi__DMatrix__CONSTRUCTOR__9 x0 =
-  withMarshal x0 $ \x0' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__DMatrix__CONSTRUCTOR__9 errStrPtrP x0'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-dmatrix__9 :: DMatrix -> IO DMatrix
-dmatrix__9 = casadi__DMatrix__CONSTRUCTOR__9
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__DMatrix__CONSTRUCTOR__10" c_casadi__DMatrix__CONSTRUCTOR__10
   :: Ptr (Ptr StdString) -> IO (Ptr DMatrix')
-casadi__DMatrix__CONSTRUCTOR__10
+casadi__DMatrix__CONSTRUCTOR__8
   :: IO DMatrix
-casadi__DMatrix__CONSTRUCTOR__10  =
+casadi__DMatrix__CONSTRUCTOR__8  =
 
   do
     errStrPtrP <- new nullPtr
-    ret <- c_casadi__DMatrix__CONSTRUCTOR__10 errStrPtrP 
+    ret <- c_casadi__DMatrix__CONSTRUCTOR__8 errStrPtrP 
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
 -- classy wrapper
-dmatrix__10 :: IO DMatrix
-dmatrix__10 = casadi__DMatrix__CONSTRUCTOR__10
+dmatrix__8 :: IO DMatrix
+dmatrix__8 = casadi__DMatrix__CONSTRUCTOR__8
 
 
 -- direct wrapper
@@ -1285,70 +1238,6 @@
 
 
 -- direct wrapper
-foreign import ccall unsafe "casadi__DMatrix__get__8" c_casadi__DMatrix__get__8
-  :: Ptr (Ptr StdString) -> Ptr DMatrix' -> Ptr (StdVec CDouble) -> CInt -> IO ()
-casadi__DMatrix__get__8
-  :: DMatrix -> Vector Double -> Bool -> IO ()
-casadi__DMatrix__get__8 x0 x1 x2 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  withMarshal x2 $ \x2' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__DMatrix__get__8 errStrPtrP x0' x1' x2'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-dmatrix_get__8 :: DMatrixClass a => a -> Vector Double -> Bool -> IO ()
-dmatrix_get__8 x = casadi__DMatrix__get__8 (castDMatrix x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__DMatrix__get__9" c_casadi__DMatrix__get__9
-  :: Ptr (Ptr StdString) -> Ptr DMatrix' -> CDouble -> IO ()
-casadi__DMatrix__get__9
-  :: DMatrix -> Double -> IO ()
-casadi__DMatrix__get__9 x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__DMatrix__get__9 errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-dmatrix_get__9 :: DMatrixClass a => a -> Double -> IO ()
-dmatrix_get__9 x = casadi__DMatrix__get__9 (castDMatrix x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__DMatrix__get__10" c_casadi__DMatrix__get__10
-  :: Ptr (Ptr StdString) -> Ptr DMatrix' -> Ptr DMatrix' -> IO ()
-casadi__DMatrix__get__10
-  :: DMatrix -> DMatrix -> IO ()
-casadi__DMatrix__get__10 x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__DMatrix__get__10 errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-dmatrix_get__10 :: DMatrixClass a => a -> DMatrix -> IO ()
-dmatrix_get__10 x = casadi__DMatrix__get__10 (castDMatrix x)
-
-
--- direct wrapper
 foreign import ccall unsafe "casadi__DMatrix__getColind" c_casadi__DMatrix__getColind
   :: Ptr (Ptr StdString) -> Ptr DMatrix' -> IO (Ptr (StdVec CInt))
 casadi__DMatrix__getColind
@@ -1554,27 +1443,6 @@
 -- classy wrapper
 dmatrix_getNZ__2 :: DMatrixClass a => a -> Vector Double -> IO ()
 dmatrix_getNZ__2 x = casadi__DMatrix__getNZ__2 (castDMatrix x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__DMatrix__getNZ__3" c_casadi__DMatrix__getNZ__3
-  :: Ptr (Ptr StdString) -> Ptr DMatrix' -> CDouble -> IO ()
-casadi__DMatrix__getNZ__3
-  :: DMatrix -> Double -> IO ()
-casadi__DMatrix__getNZ__3 x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__DMatrix__getNZ__3 errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-dmatrix_getNZ__3 :: DMatrixClass a => a -> Double -> IO ()
-dmatrix_getNZ__3 x = casadi__DMatrix__getNZ__3 (castDMatrix x)
 
 
 -- direct wrapper
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
@@ -51,7 +51,6 @@
          imatrix_getNZ__0,
          imatrix_getNZ__1,
          imatrix_getNZ__2,
-         imatrix_getNZ__3,
          imatrix_getName,
          imatrix_getNdeps,
          imatrix_getRepresentation,
@@ -62,15 +61,12 @@
          imatrix_getValue__1,
          imatrix_get__0,
          imatrix_get__1,
-         imatrix_get__10,
          imatrix_get__2,
          imatrix_get__3,
          imatrix_get__4,
          imatrix_get__5,
          imatrix_get__6,
          imatrix_get__7,
-         imatrix_get__8,
-         imatrix_get__9,
          imatrix_hasNZ,
          imatrix_hasNonStructuralZeros,
          imatrix_inf__0,
@@ -1200,70 +1196,6 @@
 
 
 -- direct wrapper
-foreign import ccall unsafe "casadi__IMatrix__get__8" c_casadi__IMatrix__get__8
-  :: Ptr (Ptr StdString) -> Ptr IMatrix' -> Ptr (StdVec CDouble) -> CInt -> IO ()
-casadi__IMatrix__get__8
-  :: IMatrix -> Vector Double -> Bool -> IO ()
-casadi__IMatrix__get__8 x0 x1 x2 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  withMarshal x2 $ \x2' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__IMatrix__get__8 errStrPtrP x0' x1' x2'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-imatrix_get__8 :: IMatrixClass a => a -> Vector Double -> Bool -> IO ()
-imatrix_get__8 x = casadi__IMatrix__get__8 (castIMatrix x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__IMatrix__get__9" c_casadi__IMatrix__get__9
-  :: Ptr (Ptr StdString) -> Ptr IMatrix' -> CDouble -> IO ()
-casadi__IMatrix__get__9
-  :: IMatrix -> Double -> IO ()
-casadi__IMatrix__get__9 x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__IMatrix__get__9 errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-imatrix_get__9 :: IMatrixClass a => a -> Double -> IO ()
-imatrix_get__9 x = casadi__IMatrix__get__9 (castIMatrix x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__IMatrix__get__10" c_casadi__IMatrix__get__10
-  :: Ptr (Ptr StdString) -> Ptr IMatrix' -> Ptr IMatrix' -> IO ()
-casadi__IMatrix__get__10
-  :: IMatrix -> IMatrix -> IO ()
-casadi__IMatrix__get__10 x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__IMatrix__get__10 errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-imatrix_get__10 :: IMatrixClass a => a -> IMatrix -> IO ()
-imatrix_get__10 x = casadi__IMatrix__get__10 (castIMatrix x)
-
-
--- direct wrapper
 foreign import ccall unsafe "casadi__IMatrix__getColind" c_casadi__IMatrix__getColind
   :: Ptr (Ptr StdString) -> Ptr IMatrix' -> IO (Ptr (StdVec CInt))
 casadi__IMatrix__getColind
@@ -1469,27 +1401,6 @@
 -- classy wrapper
 imatrix_getNZ__2 :: IMatrixClass a => a -> Vector Double -> IO ()
 imatrix_getNZ__2 x = casadi__IMatrix__getNZ__2 (castIMatrix x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__IMatrix__getNZ__3" c_casadi__IMatrix__getNZ__3
-  :: Ptr (Ptr StdString) -> Ptr IMatrix' -> CDouble -> IO ()
-casadi__IMatrix__getNZ__3
-  :: IMatrix -> Double -> IO ()
-casadi__IMatrix__getNZ__3 x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__IMatrix__getNZ__3 errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-imatrix_getNZ__3 :: IMatrixClass a => a -> Double -> IO ()
-imatrix_getNZ__3 x = casadi__IMatrix__getNZ__3 (castIMatrix x)
 
 
 -- direct wrapper
diff --git a/Casadi/Core/Classes/MX.hs b/Casadi/Core/Classes/MX.hs
--- a/Casadi/Core/Classes/MX.hs
+++ b/Casadi/Core/Classes/MX.hs
@@ -205,6 +205,8 @@
          mx_zz_graph_substitute__0,
          mx_zz_graph_substitute__1,
          mx_zz_gt,
+         mx_zz_hessian__0,
+         mx_zz_hessian__1,
          mx_zz_horzcat,
          mx_zz_horzsplit,
          mx_zz_if_else,
@@ -4393,6 +4395,50 @@
 -- classy wrapper
 mx_zz_gt :: MXClass a => a -> MX -> IO MX
 mx_zz_gt x = casadi__MX__zz_gt (castMX x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__MX__zz_hessian__0" c_casadi__MX__zz_hessian__0
+  :: Ptr (Ptr StdString) -> Ptr MX' -> Ptr MX' -> Ptr MX' -> Ptr MX' -> IO ()
+casadi__MX__zz_hessian__0
+  :: MX -> MX -> MX -> MX -> IO ()
+casadi__MX__zz_hessian__0 x0 x1 x2 x3 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  withMarshal x2 $ \x2' ->
+  withMarshal x3 $ \x3' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__MX__zz_hessian__0 errStrPtrP x0' x1' x2' x3'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+mx_zz_hessian__0 :: MXClass a => a -> MX -> MX -> MX -> IO ()
+mx_zz_hessian__0 x = casadi__MX__zz_hessian__0 (castMX x)
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__MX__zz_hessian__1" c_casadi__MX__zz_hessian__1
+  :: Ptr (Ptr StdString) -> Ptr MX' -> Ptr MX' -> IO (Ptr MX')
+casadi__MX__zz_hessian__1
+  :: MX -> MX -> IO MX
+casadi__MX__zz_hessian__1 x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__MX__zz_hessian__1 errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+mx_zz_hessian__1 :: MXClass a => a -> MX -> IO MX
+mx_zz_hessian__1 x = casadi__MX__zz_hessian__1 (castMX x)
 
 
 -- direct wrapper
diff --git a/Casadi/Core/Classes/MXAlgEl.hs b/Casadi/Core/Classes/MXAlgEl.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/Core/Classes/MXAlgEl.hs
@@ -0,0 +1,31 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# Language ForeignFunctionInterface #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.Core.Classes.MXAlgEl
+       (
+         MXAlgEl,
+         MXAlgElClass(..),
+       ) 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.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
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
@@ -55,7 +55,6 @@
          sx_getNZ__0,
          sx_getNZ__1,
          sx_getNZ__2,
-         sx_getNZ__3,
          sx_getName,
          sx_getNdeps,
          sx_getRepresentation,
@@ -66,15 +65,12 @@
          sx_getValue__1,
          sx_get__0,
          sx_get__1,
-         sx_get__10,
          sx_get__2,
          sx_get__3,
          sx_get__4,
          sx_get__5,
          sx_get__6,
          sx_get__7,
-         sx_get__8,
-         sx_get__9,
          sx_hasNZ,
          sx_hasNonStructuralZeros,
          sx_inf__0,
@@ -1284,70 +1280,6 @@
 
 
 -- direct wrapper
-foreign import ccall unsafe "casadi__SX__get__8" c_casadi__SX__get__8
-  :: Ptr (Ptr StdString) -> Ptr SX' -> Ptr (StdVec CDouble) -> CInt -> IO ()
-casadi__SX__get__8
-  :: SX -> Vector Double -> Bool -> IO ()
-casadi__SX__get__8 x0 x1 x2 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  withMarshal x2 $ \x2' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SX__get__8 errStrPtrP x0' x1' x2'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sx_get__8 :: SXClass a => a -> Vector Double -> Bool -> IO ()
-sx_get__8 x = casadi__SX__get__8 (castSX x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__SX__get__9" c_casadi__SX__get__9
-  :: Ptr (Ptr StdString) -> Ptr SX' -> CDouble -> IO ()
-casadi__SX__get__9
-  :: SX -> Double -> IO ()
-casadi__SX__get__9 x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SX__get__9 errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sx_get__9 :: SXClass a => a -> Double -> IO ()
-sx_get__9 x = casadi__SX__get__9 (castSX x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__SX__get__10" c_casadi__SX__get__10
-  :: Ptr (Ptr StdString) -> Ptr SX' -> Ptr SX' -> IO ()
-casadi__SX__get__10
-  :: SX -> SX -> IO ()
-casadi__SX__get__10 x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SX__get__10 errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sx_get__10 :: SXClass a => a -> SX -> IO ()
-sx_get__10 x = casadi__SX__get__10 (castSX x)
-
-
--- direct wrapper
 foreign import ccall unsafe "casadi__SX__getColind" c_casadi__SX__getColind
   :: Ptr (Ptr StdString) -> Ptr SX' -> IO (Ptr (StdVec CInt))
 casadi__SX__getColind
@@ -1553,27 +1485,6 @@
 -- classy wrapper
 sx_getNZ__2 :: SXClass a => a -> Vector Double -> IO ()
 sx_getNZ__2 x = casadi__SX__getNZ__2 (castSX x)
-
-
--- direct wrapper
-foreign import ccall unsafe "casadi__SX__getNZ__3" c_casadi__SX__getNZ__3
-  :: Ptr (Ptr StdString) -> Ptr SX' -> CDouble -> IO ()
-casadi__SX__getNZ__3
-  :: SX -> Double -> IO ()
-casadi__SX__getNZ__3 x0 x1 =
-  withMarshal x0 $ \x0' ->
-  withMarshal x1 $ \x1' ->
-  do
-    errStrPtrP <- new nullPtr
-    ret <- c_casadi__SX__getNZ__3 errStrPtrP x0' x1'
-    errStrPtr <- peek errStrPtrP
-    free errStrPtrP
-    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
-
-
--- classy wrapper
-sx_getNZ__3 :: SXClass a => a -> Double -> IO ()
-sx_getNZ__3 x = casadi__SX__getNZ__3 (castSX x)
 
 
 -- direct wrapper
diff --git a/Casadi/Core/Data.hs b/Casadi/Core/Data.hs
--- a/Casadi/Core/Data.hs
+++ b/Casadi/Core/Data.hs
@@ -808,6 +808,30 @@
 
 
 -- raw decl
+data MXAlgEl'
+-- data decl
+{-|
+-}
+newtype MXAlgEl = MXAlgEl (ForeignPtr MXAlgEl')
+-- typeclass decl
+class MXAlgElClass a where
+  castMXAlgEl :: a -> MXAlgEl
+instance MXAlgElClass MXAlgEl where
+  castMXAlgEl = id
+
+-- baseclass instances
+
+-- helper instances
+instance Marshal MXAlgEl (Ptr MXAlgEl') where
+  marshal (MXAlgEl x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (MXAlgEl x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__MXAlgEl" 
+  c_delete_casadi__MXAlgEl :: FunPtr (Ptr MXAlgEl' -> IO ())
+instance WrapReturn (Ptr MXAlgEl') MXAlgEl where
+  wrapReturn = (fmap MXAlgEl) . (newForeignPtr c_delete_casadi__MXAlgEl)
+
+
+-- raw decl
 data MXFunction'
 -- data decl
 {-|
diff --git a/Casadi/Core/Enums.hs b/Casadi/Core/Enums.hs
--- a/Casadi/Core/Enums.hs
+++ b/Casadi/Core/Enums.hs
@@ -1920,21 +1920,27 @@
 
 -- EnumDecl: SOCPOutput
 data SOCPOutput = SOCP_SOLVER_COST
+                | SOCP_SOLVER_DUAL_COST
                 | SOCP_SOLVER_LAM_A
+                | SOCP_SOLVER_LAM_CONE
                 | SOCP_SOLVER_LAM_X
                 | SOCP_SOLVER_NUM_OUT
                 | SOCP_SOLVER_X
                 deriving (Show, Eq)
 instance Enum SOCPOutput where
         fromEnum (SOCP_SOLVER_COST) = 1
-        fromEnum (SOCP_SOLVER_LAM_A) = 2
-        fromEnum (SOCP_SOLVER_LAM_X) = 3
-        fromEnum (SOCP_SOLVER_NUM_OUT) = 4
+        fromEnum (SOCP_SOLVER_DUAL_COST) = 2
+        fromEnum (SOCP_SOLVER_LAM_A) = 3
+        fromEnum (SOCP_SOLVER_LAM_CONE) = 5
+        fromEnum (SOCP_SOLVER_LAM_X) = 4
+        fromEnum (SOCP_SOLVER_NUM_OUT) = 6
         fromEnum (SOCP_SOLVER_X) = 0
         toEnum (1) = SOCP_SOLVER_COST
-        toEnum (2) = SOCP_SOLVER_LAM_A
-        toEnum (3) = SOCP_SOLVER_LAM_X
-        toEnum (4) = SOCP_SOLVER_NUM_OUT
+        toEnum (2) = SOCP_SOLVER_DUAL_COST
+        toEnum (3) = SOCP_SOLVER_LAM_A
+        toEnum (5) = SOCP_SOLVER_LAM_CONE
+        toEnum (4) = SOCP_SOLVER_LAM_X
+        toEnum (6) = SOCP_SOLVER_NUM_OUT
         toEnum (0) = SOCP_SOLVER_X
         toEnum k
           = error $ "SOCPOutput: toEnum: got unhandled number: " ++ show k
@@ -1945,16 +1951,19 @@
 
 -- EnumDecl: SOCPStruct
 data SOCPStruct = SOCP_STRUCT_A
+                | SOCP_STRUCT_E
                 | SOCP_STRUCT_G
                 | SOCP_STRUCT_NUM
                 deriving (Show, Eq)
 instance Enum SOCPStruct where
-        fromEnum (SOCP_STRUCT_A) = 1
+        fromEnum (SOCP_STRUCT_A) = 2
+        fromEnum (SOCP_STRUCT_E) = 1
         fromEnum (SOCP_STRUCT_G) = 0
-        fromEnum (SOCP_STRUCT_NUM) = 2
-        toEnum (1) = SOCP_STRUCT_A
+        fromEnum (SOCP_STRUCT_NUM) = 3
+        toEnum (2) = SOCP_STRUCT_A
+        toEnum (1) = SOCP_STRUCT_E
         toEnum (0) = SOCP_STRUCT_G
-        toEnum (2) = SOCP_STRUCT_NUM
+        toEnum (3) = SOCP_STRUCT_NUM
         toEnum k
           = error $ "SOCPStruct: toEnum: got unhandled number: " ++ show k
 instance Marshal SOCPStruct CInt where
diff --git a/Casadi/Core/Tools.hs b/Casadi/Core/Tools.hs
--- a/Casadi/Core/Tools.hs
+++ b/Casadi/Core/Tools.hs
@@ -279,6 +279,8 @@
          hessLagOut__9,
          hessian__0,
          hessian__1,
+         hessian__2,
+         hessian__3,
          hnlpIn__0,
          hnlpIn__1,
          hnlpIn__10,
@@ -1063,6 +1065,14 @@
          socpOut__18,
          socpOut__19,
          socpOut__2,
+         socpOut__20,
+         socpOut__21,
+         socpOut__22,
+         socpOut__23,
+         socpOut__24,
+         socpOut__25,
+         socpOut__26,
+         socpOut__27,
          socpOut__3,
          socpOut__4,
          socpOut__5,
@@ -1073,6 +1083,7 @@
          socpStruct__0,
          socpStruct__1,
          socpStruct__2,
+         socpStruct__3,
          solve__0,
          solve__1,
          solve__2,
@@ -5535,9 +5546,9 @@
 
 
 foreign import ccall unsafe "hessian__0" c_hessian__0
-  :: Ptr (Ptr StdString) -> Ptr SX' -> Ptr SX' -> Ptr SX' -> Ptr SX' -> IO ()
+  :: Ptr (Ptr StdString) -> Ptr MX' -> Ptr MX' -> Ptr MX' -> Ptr MX' -> IO ()
 hessian__0
-  :: SX -> SX -> SX -> SX -> IO ()
+  :: MX -> MX -> MX -> MX -> IO ()
 hessian__0 x0 x1 x2 x3 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
@@ -5552,9 +5563,9 @@
 
 
 foreign import ccall unsafe "hessian__1" c_hessian__1
-  :: Ptr (Ptr StdString) -> Ptr SX' -> Ptr SX' -> IO (Ptr SX')
+  :: Ptr (Ptr StdString) -> Ptr MX' -> Ptr MX' -> IO (Ptr MX')
 hessian__1
-  :: SX -> SX -> IO SX
+  :: MX -> MX -> IO MX
 hessian__1 x0 x1 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
@@ -5566,6 +5577,38 @@
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
+foreign import ccall unsafe "hessian__2" c_hessian__2
+  :: Ptr (Ptr StdString) -> Ptr SX' -> Ptr SX' -> Ptr SX' -> Ptr SX' -> IO ()
+hessian__2
+  :: SX -> SX -> SX -> SX -> IO ()
+hessian__2 x0 x1 x2 x3 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  withMarshal x2 $ \x2' ->
+  withMarshal x3 $ \x3' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_hessian__2 errStrPtrP x0' x1' x2' x3'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+foreign import ccall unsafe "hessian__3" c_hessian__3
+  :: Ptr (Ptr StdString) -> Ptr SX' -> Ptr SX' -> IO (Ptr SX')
+hessian__3
+  :: SX -> SX -> IO SX
+hessian__3 x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_hessian__3 errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
 foreign import ccall unsafe "hnlpIn__0" c_hnlpIn__0
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr Sparsity')) -> IO (Ptr (StdVec (Ptr Sparsity')))
 hnlpIn__0
@@ -18723,72 +18766,111 @@
 
 
 foreign import ccall unsafe "socpOut__5" c_socpOut__5
-  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr DMatrix')) -> IO (Ptr (StdVec (Ptr DMatrix')))
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr Sparsity')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr Sparsity')))
 socpOut__5
-  :: Vector DMatrix -> IO (Vector DMatrix)
-socpOut__5 x0 =
+  :: Vector Sparsity -> String -> String -> String -> String -> String -> IO (Vector Sparsity)
+socpOut__5 x0 x1 x2 x3 x4 x5 =
   withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  withMarshal x2 $ \x2' ->
+  withMarshal x3 $ \x3' ->
+  withMarshal x4 $ \x4' ->
+  withMarshal x5 $ \x5' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__5 errStrPtrP x0'
+    ret <- c_socpOut__5 errStrPtrP x0' x1' x2' x3' x4' x5'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
 foreign import ccall unsafe "socpOut__6" c_socpOut__6
-  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr DMatrix')) -> Ptr StdString -> IO (Ptr (StdVec (Ptr DMatrix')))
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr Sparsity')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr Sparsity')))
 socpOut__6
-  :: Vector DMatrix -> String -> IO (Vector DMatrix)
-socpOut__6 x0 x1 =
+  :: Vector Sparsity -> String -> String -> String -> String -> String -> String -> IO (Vector Sparsity)
+socpOut__6 x0 x1 x2 x3 x4 x5 x6 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
+  withMarshal x2 $ \x2' ->
+  withMarshal x3 $ \x3' ->
+  withMarshal x4 $ \x4' ->
+  withMarshal x5 $ \x5' ->
+  withMarshal x6 $ \x6' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__6 errStrPtrP x0' x1'
+    ret <- c_socpOut__6 errStrPtrP x0' x1' x2' x3' x4' x5' x6'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
 foreign import ccall unsafe "socpOut__7" c_socpOut__7
-  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr DMatrix')) -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr DMatrix')))
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr DMatrix')) -> IO (Ptr (StdVec (Ptr DMatrix')))
 socpOut__7
+  :: Vector DMatrix -> IO (Vector DMatrix)
+socpOut__7 x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_socpOut__7 errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+foreign import ccall unsafe "socpOut__8" c_socpOut__8
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr DMatrix')) -> Ptr StdString -> IO (Ptr (StdVec (Ptr DMatrix')))
+socpOut__8
+  :: Vector DMatrix -> String -> IO (Vector DMatrix)
+socpOut__8 x0 x1 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_socpOut__8 errStrPtrP x0' x1'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+foreign import ccall unsafe "socpOut__9" c_socpOut__9
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr DMatrix')) -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr DMatrix')))
+socpOut__9
   :: Vector DMatrix -> String -> String -> IO (Vector DMatrix)
-socpOut__7 x0 x1 x2 =
+socpOut__9 x0 x1 x2 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   withMarshal x2 $ \x2' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__7 errStrPtrP x0' x1' x2'
+    ret <- c_socpOut__9 errStrPtrP x0' x1' x2'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__8" c_socpOut__8
+foreign import ccall unsafe "socpOut__10" c_socpOut__10
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr DMatrix')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr DMatrix')))
-socpOut__8
+socpOut__10
   :: Vector DMatrix -> String -> String -> String -> IO (Vector DMatrix)
-socpOut__8 x0 x1 x2 x3 =
+socpOut__10 x0 x1 x2 x3 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   withMarshal x2 $ \x2' ->
   withMarshal x3 $ \x3' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__8 errStrPtrP x0' x1' x2' x3'
+    ret <- c_socpOut__10 errStrPtrP x0' x1' x2' x3'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__9" c_socpOut__9
+foreign import ccall unsafe "socpOut__11" c_socpOut__11
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr DMatrix')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr DMatrix')))
-socpOut__9
+socpOut__11
   :: Vector DMatrix -> String -> String -> String -> String -> IO (Vector DMatrix)
-socpOut__9 x0 x1 x2 x3 x4 =
+socpOut__11 x0 x1 x2 x3 x4 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   withMarshal x2 $ \x2' ->
@@ -18796,79 +18878,118 @@
   withMarshal x4 $ \x4' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__9 errStrPtrP x0' x1' x2' x3' x4'
+    ret <- c_socpOut__11 errStrPtrP x0' x1' x2' x3' x4'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__10" c_socpOut__10
+foreign import ccall unsafe "socpOut__12" c_socpOut__12
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr DMatrix')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr DMatrix')))
+socpOut__12
+  :: Vector DMatrix -> String -> String -> String -> String -> String -> IO (Vector DMatrix)
+socpOut__12 x0 x1 x2 x3 x4 x5 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  withMarshal x2 $ \x2' ->
+  withMarshal x3 $ \x3' ->
+  withMarshal x4 $ \x4' ->
+  withMarshal x5 $ \x5' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_socpOut__12 errStrPtrP x0' x1' x2' x3' x4' x5'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+foreign import ccall unsafe "socpOut__13" c_socpOut__13
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr DMatrix')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr DMatrix')))
+socpOut__13
+  :: Vector DMatrix -> String -> String -> String -> String -> String -> String -> IO (Vector DMatrix)
+socpOut__13 x0 x1 x2 x3 x4 x5 x6 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  withMarshal x2 $ \x2' ->
+  withMarshal x3 $ \x3' ->
+  withMarshal x4 $ \x4' ->
+  withMarshal x5 $ \x5' ->
+  withMarshal x6 $ \x6' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_socpOut__13 errStrPtrP x0' x1' x2' x3' x4' x5' x6'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+foreign import ccall unsafe "socpOut__14" c_socpOut__14
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr MX')) -> IO (Ptr (StdVec (Ptr MX')))
-socpOut__10
+socpOut__14
   :: Vector MX -> IO (Vector MX)
-socpOut__10 x0 =
+socpOut__14 x0 =
   withMarshal x0 $ \x0' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__10 errStrPtrP x0'
+    ret <- c_socpOut__14 errStrPtrP x0'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__11" c_socpOut__11
+foreign import ccall unsafe "socpOut__15" c_socpOut__15
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr MX')) -> Ptr StdString -> IO (Ptr (StdVec (Ptr MX')))
-socpOut__11
+socpOut__15
   :: Vector MX -> String -> IO (Vector MX)
-socpOut__11 x0 x1 =
+socpOut__15 x0 x1 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__11 errStrPtrP x0' x1'
+    ret <- c_socpOut__15 errStrPtrP x0' x1'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__12" c_socpOut__12
+foreign import ccall unsafe "socpOut__16" c_socpOut__16
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr MX')) -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr MX')))
-socpOut__12
+socpOut__16
   :: Vector MX -> String -> String -> IO (Vector MX)
-socpOut__12 x0 x1 x2 =
+socpOut__16 x0 x1 x2 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   withMarshal x2 $ \x2' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__12 errStrPtrP x0' x1' x2'
+    ret <- c_socpOut__16 errStrPtrP x0' x1' x2'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__13" c_socpOut__13
+foreign import ccall unsafe "socpOut__17" c_socpOut__17
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr MX')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr MX')))
-socpOut__13
+socpOut__17
   :: Vector MX -> String -> String -> String -> IO (Vector MX)
-socpOut__13 x0 x1 x2 x3 =
+socpOut__17 x0 x1 x2 x3 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   withMarshal x2 $ \x2' ->
   withMarshal x3 $ \x3' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__13 errStrPtrP x0' x1' x2' x3'
+    ret <- c_socpOut__17 errStrPtrP x0' x1' x2' x3'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__14" c_socpOut__14
+foreign import ccall unsafe "socpOut__18" c_socpOut__18
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr MX')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr MX')))
-socpOut__14
+socpOut__18
   :: Vector MX -> String -> String -> String -> String -> IO (Vector MX)
-socpOut__14 x0 x1 x2 x3 x4 =
+socpOut__18 x0 x1 x2 x3 x4 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   withMarshal x2 $ \x2' ->
@@ -18876,79 +18997,118 @@
   withMarshal x4 $ \x4' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__14 errStrPtrP x0' x1' x2' x3' x4'
+    ret <- c_socpOut__18 errStrPtrP x0' x1' x2' x3' x4'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__15" c_socpOut__15
+foreign import ccall unsafe "socpOut__19" c_socpOut__19
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr MX')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr MX')))
+socpOut__19
+  :: Vector MX -> String -> String -> String -> String -> String -> IO (Vector MX)
+socpOut__19 x0 x1 x2 x3 x4 x5 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  withMarshal x2 $ \x2' ->
+  withMarshal x3 $ \x3' ->
+  withMarshal x4 $ \x4' ->
+  withMarshal x5 $ \x5' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_socpOut__19 errStrPtrP x0' x1' x2' x3' x4' x5'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+foreign import ccall unsafe "socpOut__20" c_socpOut__20
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr MX')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr MX')))
+socpOut__20
+  :: Vector MX -> String -> String -> String -> String -> String -> String -> IO (Vector MX)
+socpOut__20 x0 x1 x2 x3 x4 x5 x6 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  withMarshal x2 $ \x2' ->
+  withMarshal x3 $ \x3' ->
+  withMarshal x4 $ \x4' ->
+  withMarshal x5 $ \x5' ->
+  withMarshal x6 $ \x6' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_socpOut__20 errStrPtrP x0' x1' x2' x3' x4' x5' x6'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+foreign import ccall unsafe "socpOut__21" c_socpOut__21
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr SX')) -> IO (Ptr (StdVec (Ptr SX')))
-socpOut__15
+socpOut__21
   :: Vector SX -> IO (Vector SX)
-socpOut__15 x0 =
+socpOut__21 x0 =
   withMarshal x0 $ \x0' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__15 errStrPtrP x0'
+    ret <- c_socpOut__21 errStrPtrP x0'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__16" c_socpOut__16
+foreign import ccall unsafe "socpOut__22" c_socpOut__22
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr SX')) -> Ptr StdString -> IO (Ptr (StdVec (Ptr SX')))
-socpOut__16
+socpOut__22
   :: Vector SX -> String -> IO (Vector SX)
-socpOut__16 x0 x1 =
+socpOut__22 x0 x1 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__16 errStrPtrP x0' x1'
+    ret <- c_socpOut__22 errStrPtrP x0' x1'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__17" c_socpOut__17
+foreign import ccall unsafe "socpOut__23" c_socpOut__23
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr SX')) -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr SX')))
-socpOut__17
+socpOut__23
   :: Vector SX -> String -> String -> IO (Vector SX)
-socpOut__17 x0 x1 x2 =
+socpOut__23 x0 x1 x2 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   withMarshal x2 $ \x2' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__17 errStrPtrP x0' x1' x2'
+    ret <- c_socpOut__23 errStrPtrP x0' x1' x2'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__18" c_socpOut__18
+foreign import ccall unsafe "socpOut__24" c_socpOut__24
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr SX')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr SX')))
-socpOut__18
+socpOut__24
   :: Vector SX -> String -> String -> String -> IO (Vector SX)
-socpOut__18 x0 x1 x2 x3 =
+socpOut__24 x0 x1 x2 x3 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   withMarshal x2 $ \x2' ->
   withMarshal x3 $ \x3' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__18 errStrPtrP x0' x1' x2' x3'
+    ret <- c_socpOut__24 errStrPtrP x0' x1' x2' x3'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
-foreign import ccall unsafe "socpOut__19" c_socpOut__19
+foreign import ccall unsafe "socpOut__25" c_socpOut__25
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr SX')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr SX')))
-socpOut__19
+socpOut__25
   :: Vector SX -> String -> String -> String -> String -> IO (Vector SX)
-socpOut__19 x0 x1 x2 x3 x4 =
+socpOut__25 x0 x1 x2 x3 x4 =
   withMarshal x0 $ \x0' ->
   withMarshal x1 $ \x1' ->
   withMarshal x2 $ \x2' ->
@@ -18956,12 +19116,51 @@
   withMarshal x4 $ \x4' ->
   do
     errStrPtrP <- new nullPtr
-    ret <- c_socpOut__19 errStrPtrP x0' x1' x2' x3' x4'
+    ret <- c_socpOut__25 errStrPtrP x0' x1' x2' x3' x4'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
 
 
+foreign import ccall unsafe "socpOut__26" c_socpOut__26
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr SX')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr SX')))
+socpOut__26
+  :: Vector SX -> String -> String -> String -> String -> String -> IO (Vector SX)
+socpOut__26 x0 x1 x2 x3 x4 x5 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  withMarshal x2 $ \x2' ->
+  withMarshal x3 $ \x3' ->
+  withMarshal x4 $ \x4' ->
+  withMarshal x5 $ \x5' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_socpOut__26 errStrPtrP x0' x1' x2' x3' x4' x5'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+foreign import ccall unsafe "socpOut__27" c_socpOut__27
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr SX')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr SX')))
+socpOut__27
+  :: Vector SX -> String -> String -> String -> String -> String -> String -> IO (Vector SX)
+socpOut__27 x0 x1 x2 x3 x4 x5 x6 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  withMarshal x2 $ \x2' ->
+  withMarshal x3 $ \x3' ->
+  withMarshal x4 $ \x4' ->
+  withMarshal x5 $ \x5' ->
+  withMarshal x6 $ \x6' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_socpOut__27 errStrPtrP x0' x1' x2' x3' x4' x5' x6'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
 foreign import ccall unsafe "socpStruct__0" c_socpStruct__0
   :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr Sparsity')) -> IO (Ptr (StdVec (Ptr Sparsity')))
 socpStruct__0
@@ -19002,6 +19201,23 @@
   do
     errStrPtrP <- new nullPtr
     ret <- c_socpStruct__2 errStrPtrP x0' x1' x2'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+foreign import ccall unsafe "socpStruct__3" c_socpStruct__3
+  :: Ptr (Ptr StdString) -> Ptr (StdVec (Ptr Sparsity')) -> Ptr StdString -> Ptr StdString -> Ptr StdString -> IO (Ptr (StdVec (Ptr Sparsity')))
+socpStruct__3
+  :: Vector Sparsity -> String -> String -> String -> IO (Vector Sparsity)
+socpStruct__3 x0 x1 x2 x3 =
+  withMarshal x0 $ \x0' ->
+  withMarshal x1 $ \x1' ->
+  withMarshal x2 $ \x2' ->
+  withMarshal x3 $ \x3' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_socpStruct__3 errStrPtrP x0' x1' x2' x3'
     errStrPtr <- peek errStrPtrP
     free errStrPtrP
     if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
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:             2.3.0.0
+version:             2.3.0.1
 license:             LGPL-3
 license-file:        LICENSE
 category:            Numerical, Math
@@ -62,6 +62,7 @@
                     Casadi.Core.Classes.LrDleSolver
                     Casadi.Core.Classes.LrDpleSolver
                     Casadi.Core.Classes.MX
+                    Casadi.Core.Classes.MXAlgEl
                     Casadi.Core.Classes.MXFunction
                     Casadi.Core.Classes.NlpSolver
                     Casadi.Core.Classes.Nullspace
diff --git a/cbits/autogen/casadi_wrap_classes.cpp b/cbits/autogen/casadi_wrap_classes.cpp
# file too large to diff: cbits/autogen/casadi_wrap_classes.cpp
diff --git a/cbits/autogen/casadi_wrap_functions.cpp b/cbits/autogen/casadi_wrap_functions.cpp
--- a/cbits/autogen/casadi_wrap_functions.cpp
+++ b/cbits/autogen/casadi_wrap_functions.cpp
@@ -7390,16 +7390,69 @@
 // ================== function "casadi::hessian" ===============
 // cppName: "casadi::hessian"
 // cWrapperName: "hessian__0"
+// protoArgs: "(std::string ** err_msg, casadi::MX* x0, casadi::MX* x1, casadi::MX* x2, casadi::MX* x3)"
+// params: [Ref (Const (UserType (Namespace ["casadi"]) (Name "MX"))),Ref (Const (UserType (Namespace ["casadi"]) (Name "MX"))),Ref (UserType (Namespace ["casadi"]) (Name "MX")),Ref (UserType (Namespace ["casadi"]) (Name "MX"))]
+// retType: CVoid
+// args: "(x0_, x1_, x2_, x3_)"
+// cWrapperRetType: "void"
+// proto: "void hessian__0(std::string ** err_msg, casadi::MX* x0, casadi::MX* x1, casadi::MX* x2, casadi::MX* x3)"
+// call: "casadi::hessian(x0_, x1_, x2_, x3_)"
+extern "C"
+void hessian__0(std::string ** err_msg, casadi::MX* x0, casadi::MX* x1, casadi::MX* x2, casadi::MX* x3);
+void hessian__0(std::string ** err_msg, casadi::MX* x0, casadi::MX* x1, casadi::MX* x2, casadi::MX* x3){
+    try {
+        casadi::MX& x0_ = Marshaling<casadi::MX&,casadi::MX*>::marshal(x0);
+        casadi::MX& x1_ = Marshaling<casadi::MX&,casadi::MX*>::marshal(x1);
+        casadi::MX& x2_ = Marshaling<casadi::MX&,casadi::MX*>::marshal(x2);
+        casadi::MX& x3_ = Marshaling<casadi::MX&,casadi::MX*>::marshal(x3);
+
+        casadi::hessian(x0_, x1_, x2_, x3_);
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return;
+    }
+}
+
+
+// ================== function "casadi::hessian" ===============
+// cppName: "casadi::hessian"
+// cWrapperName: "hessian__1"
+// protoArgs: "(std::string ** err_msg, casadi::MX* x0, casadi::MX* x1)"
+// params: [Ref (Const (UserType (Namespace ["casadi"]) (Name "MX"))),Ref (Const (UserType (Namespace ["casadi"]) (Name "MX")))]
+// retType: UserType (Namespace ["casadi"]) (Name "MX")
+// args: "(x0_, x1_)"
+// cWrapperRetType: "casadi::MX*"
+// proto: "casadi::MX* hessian__1(std::string ** err_msg, casadi::MX* x0, casadi::MX* x1)"
+// call: "casadi::hessian(x0_, x1_)"
+extern "C"
+casadi::MX* hessian__1(std::string ** err_msg, casadi::MX* x0, casadi::MX* x1);
+casadi::MX* hessian__1(std::string ** err_msg, casadi::MX* x0, casadi::MX* x1){
+    try {
+        casadi::MX& x0_ = Marshaling<casadi::MX&,casadi::MX*>::marshal(x0);
+        casadi::MX& x1_ = Marshaling<casadi::MX&,casadi::MX*>::marshal(x1);
+
+        casadi::MX ret = casadi::hessian(x0_, x1_);
+        return WrapReturn< casadi::MX*, casadi::MX >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== function "casadi::hessian" ===============
+// cppName: "casadi::hessian"
+// cWrapperName: "hessian__2"
 // protoArgs: "(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1, casadi::SX* x2, casadi::SX* x3)"
 // params: [Ref (Const (UserType (Namespace ["casadi"]) (Name "SX"))),Ref (Const (UserType (Namespace ["casadi"]) (Name "SX"))),Ref (UserType (Namespace ["casadi"]) (Name "SX")),Ref (UserType (Namespace ["casadi"]) (Name "SX"))]
 // retType: CVoid
 // args: "(x0_, x1_, x2_, x3_)"
 // cWrapperRetType: "void"
-// proto: "void hessian__0(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1, casadi::SX* x2, casadi::SX* x3)"
+// proto: "void hessian__2(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1, casadi::SX* x2, casadi::SX* x3)"
 // call: "casadi::hessian(x0_, x1_, x2_, x3_)"
 extern "C"
-void hessian__0(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1, casadi::SX* x2, casadi::SX* x3);
-void hessian__0(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1, casadi::SX* x2, casadi::SX* x3){
+void hessian__2(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1, casadi::SX* x2, casadi::SX* x3);
+void hessian__2(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1, casadi::SX* x2, casadi::SX* x3){
     try {
         casadi::SX& x0_ = Marshaling<casadi::SX&,casadi::SX*>::marshal(x0);
         casadi::SX& x1_ = Marshaling<casadi::SX&,casadi::SX*>::marshal(x1);
@@ -7416,17 +7469,17 @@
 
 // ================== function "casadi::hessian" ===============
 // cppName: "casadi::hessian"
-// cWrapperName: "hessian__1"
+// cWrapperName: "hessian__3"
 // protoArgs: "(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1)"
 // params: [Ref (Const (UserType (Namespace ["casadi"]) (Name "SX"))),Ref (Const (UserType (Namespace ["casadi"]) (Name "SX")))]
 // retType: UserType (Namespace ["casadi"]) (Name "SX")
 // args: "(x0_, x1_)"
 // cWrapperRetType: "casadi::SX*"
-// proto: "casadi::SX* hessian__1(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1)"
+// proto: "casadi::SX* hessian__3(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1)"
 // call: "casadi::hessian(x0_, x1_)"
 extern "C"
-casadi::SX* hessian__1(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1);
-casadi::SX* hessian__1(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1){
+casadi::SX* hessian__3(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1);
+casadi::SX* hessian__3(std::string ** err_msg, casadi::SX* x0, casadi::SX* x1){
     try {
         casadi::SX& x0_ = Marshaling<casadi::SX&,casadi::SX*>::marshal(x0);
         casadi::SX& x1_ = Marshaling<casadi::SX&,casadi::SX*>::marshal(x1);
@@ -29133,16 +29186,77 @@
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
 // cWrapperName: "socpOut__5"
+// protoArgs: "(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5)"
+// params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "Sparsity")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
+// retType: StdVec (UserType (Namespace ["casadi"]) (Name "Sparsity"))
+// args: "(x0_, x1_, x2_, x3_, x4_, x5_)"
+// cWrapperRetType: "std::vector< casadi::Sparsity* >*"
+// proto: "std::vector< casadi::Sparsity* >* socpOut__5(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5)"
+// call: "casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_)"
+extern "C"
+std::vector< casadi::Sparsity* >* socpOut__5(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5);
+std::vector< casadi::Sparsity* >* socpOut__5(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5){
+    try {
+        std::vector< casadi::Sparsity > x0_ = Marshaling<std::vector< casadi::Sparsity >,std::vector< casadi::Sparsity* >*>::marshal(x0);
+        std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
+        std::string& x2_ = Marshaling<std::string&,std::string*>::marshal(x2);
+        std::string& x3_ = Marshaling<std::string&,std::string*>::marshal(x3);
+        std::string& x4_ = Marshaling<std::string&,std::string*>::marshal(x4);
+        std::string& x5_ = Marshaling<std::string&,std::string*>::marshal(x5);
+
+        std::vector< casadi::Sparsity > ret = casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_);
+        return WrapReturn< std::vector< casadi::Sparsity* >*, std::vector< casadi::Sparsity > >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== function "casadi::socpOut" ===============
+// cppName: "casadi::socpOut"
+// cWrapperName: "socpOut__6"
+// protoArgs: "(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6)"
+// params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "Sparsity")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
+// retType: StdVec (UserType (Namespace ["casadi"]) (Name "Sparsity"))
+// args: "(x0_, x1_, x2_, x3_, x4_, x5_, x6_)"
+// cWrapperRetType: "std::vector< casadi::Sparsity* >*"
+// proto: "std::vector< casadi::Sparsity* >* socpOut__6(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6)"
+// call: "casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_, x6_)"
+extern "C"
+std::vector< casadi::Sparsity* >* socpOut__6(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6);
+std::vector< casadi::Sparsity* >* socpOut__6(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6){
+    try {
+        std::vector< casadi::Sparsity > x0_ = Marshaling<std::vector< casadi::Sparsity >,std::vector< casadi::Sparsity* >*>::marshal(x0);
+        std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
+        std::string& x2_ = Marshaling<std::string&,std::string*>::marshal(x2);
+        std::string& x3_ = Marshaling<std::string&,std::string*>::marshal(x3);
+        std::string& x4_ = Marshaling<std::string&,std::string*>::marshal(x4);
+        std::string& x5_ = Marshaling<std::string&,std::string*>::marshal(x5);
+        std::string& x6_ = Marshaling<std::string&,std::string*>::marshal(x6);
+
+        std::vector< casadi::Sparsity > ret = casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_, x6_);
+        return WrapReturn< std::vector< casadi::Sparsity* >*, std::vector< casadi::Sparsity > >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== function "casadi::socpOut" ===============
+// cppName: "casadi::socpOut"
+// cWrapperName: "socpOut__7"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix"))))]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix"))
 // args: "(x0_)"
 // cWrapperRetType: "std::vector< casadi::DMatrix* >*"
-// proto: "std::vector< casadi::DMatrix* >* socpOut__5(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0)"
+// proto: "std::vector< casadi::DMatrix* >* socpOut__7(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0)"
 // call: "casadi::socpOut(x0_)"
 extern "C"
-std::vector< casadi::DMatrix* >* socpOut__5(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0);
-std::vector< casadi::DMatrix* >* socpOut__5(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0){
+std::vector< casadi::DMatrix* >* socpOut__7(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0);
+std::vector< casadi::DMatrix* >* socpOut__7(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0){
     try {
         std::vector< casadi::DMatrix > x0_ = Marshaling<std::vector< casadi::DMatrix >,std::vector< casadi::DMatrix* >*>::marshal(x0);
 
@@ -29157,17 +29271,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__6"
+// cWrapperName: "socpOut__8"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix")))),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix"))
 // args: "(x0_, x1_)"
 // cWrapperRetType: "std::vector< casadi::DMatrix* >*"
-// proto: "std::vector< casadi::DMatrix* >* socpOut__6(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1)"
+// proto: "std::vector< casadi::DMatrix* >* socpOut__8(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1)"
 // call: "casadi::socpOut(x0_, x1_)"
 extern "C"
-std::vector< casadi::DMatrix* >* socpOut__6(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1);
-std::vector< casadi::DMatrix* >* socpOut__6(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1){
+std::vector< casadi::DMatrix* >* socpOut__8(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1);
+std::vector< casadi::DMatrix* >* socpOut__8(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1){
     try {
         std::vector< casadi::DMatrix > x0_ = Marshaling<std::vector< casadi::DMatrix >,std::vector< casadi::DMatrix* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29183,17 +29297,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__7"
+// cWrapperName: "socpOut__9"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix")))),Ref (Const StdString),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix"))
 // args: "(x0_, x1_, x2_)"
 // cWrapperRetType: "std::vector< casadi::DMatrix* >*"
-// proto: "std::vector< casadi::DMatrix* >* socpOut__7(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2)"
+// proto: "std::vector< casadi::DMatrix* >* socpOut__9(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2)"
 // call: "casadi::socpOut(x0_, x1_, x2_)"
 extern "C"
-std::vector< casadi::DMatrix* >* socpOut__7(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2);
-std::vector< casadi::DMatrix* >* socpOut__7(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2){
+std::vector< casadi::DMatrix* >* socpOut__9(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2);
+std::vector< casadi::DMatrix* >* socpOut__9(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2){
     try {
         std::vector< casadi::DMatrix > x0_ = Marshaling<std::vector< casadi::DMatrix >,std::vector< casadi::DMatrix* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29210,17 +29324,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__8"
+// cWrapperName: "socpOut__10"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix"))
 // args: "(x0_, x1_, x2_, x3_)"
 // cWrapperRetType: "std::vector< casadi::DMatrix* >*"
-// proto: "std::vector< casadi::DMatrix* >* socpOut__8(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3)"
+// proto: "std::vector< casadi::DMatrix* >* socpOut__10(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3)"
 // call: "casadi::socpOut(x0_, x1_, x2_, x3_)"
 extern "C"
-std::vector< casadi::DMatrix* >* socpOut__8(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3);
-std::vector< casadi::DMatrix* >* socpOut__8(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3){
+std::vector< casadi::DMatrix* >* socpOut__10(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3);
+std::vector< casadi::DMatrix* >* socpOut__10(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3){
     try {
         std::vector< casadi::DMatrix > x0_ = Marshaling<std::vector< casadi::DMatrix >,std::vector< casadi::DMatrix* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29238,17 +29352,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__9"
+// cWrapperName: "socpOut__11"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix"))
 // args: "(x0_, x1_, x2_, x3_, x4_)"
 // cWrapperRetType: "std::vector< casadi::DMatrix* >*"
-// proto: "std::vector< casadi::DMatrix* >* socpOut__9(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4)"
+// proto: "std::vector< casadi::DMatrix* >* socpOut__11(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4)"
 // call: "casadi::socpOut(x0_, x1_, x2_, x3_, x4_)"
 extern "C"
-std::vector< casadi::DMatrix* >* socpOut__9(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4);
-std::vector< casadi::DMatrix* >* socpOut__9(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4){
+std::vector< casadi::DMatrix* >* socpOut__11(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4);
+std::vector< casadi::DMatrix* >* socpOut__11(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4){
     try {
         std::vector< casadi::DMatrix > x0_ = Marshaling<std::vector< casadi::DMatrix >,std::vector< casadi::DMatrix* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29267,17 +29381,78 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__10"
+// cWrapperName: "socpOut__12"
+// protoArgs: "(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5)"
+// params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
+// retType: StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix"))
+// args: "(x0_, x1_, x2_, x3_, x4_, x5_)"
+// cWrapperRetType: "std::vector< casadi::DMatrix* >*"
+// proto: "std::vector< casadi::DMatrix* >* socpOut__12(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5)"
+// call: "casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_)"
+extern "C"
+std::vector< casadi::DMatrix* >* socpOut__12(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5);
+std::vector< casadi::DMatrix* >* socpOut__12(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5){
+    try {
+        std::vector< casadi::DMatrix > x0_ = Marshaling<std::vector< casadi::DMatrix >,std::vector< casadi::DMatrix* >*>::marshal(x0);
+        std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
+        std::string& x2_ = Marshaling<std::string&,std::string*>::marshal(x2);
+        std::string& x3_ = Marshaling<std::string&,std::string*>::marshal(x3);
+        std::string& x4_ = Marshaling<std::string&,std::string*>::marshal(x4);
+        std::string& x5_ = Marshaling<std::string&,std::string*>::marshal(x5);
+
+        std::vector< casadi::DMatrix > ret = casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_);
+        return WrapReturn< std::vector< casadi::DMatrix* >*, std::vector< casadi::DMatrix > >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== function "casadi::socpOut" ===============
+// cppName: "casadi::socpOut"
+// cWrapperName: "socpOut__13"
+// protoArgs: "(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6)"
+// params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
+// retType: StdVec (UserType (Namespace ["casadi"]) (Name "DMatrix"))
+// args: "(x0_, x1_, x2_, x3_, x4_, x5_, x6_)"
+// cWrapperRetType: "std::vector< casadi::DMatrix* >*"
+// proto: "std::vector< casadi::DMatrix* >* socpOut__13(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6)"
+// call: "casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_, x6_)"
+extern "C"
+std::vector< casadi::DMatrix* >* socpOut__13(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6);
+std::vector< casadi::DMatrix* >* socpOut__13(std::string ** err_msg, std::vector< casadi::DMatrix* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6){
+    try {
+        std::vector< casadi::DMatrix > x0_ = Marshaling<std::vector< casadi::DMatrix >,std::vector< casadi::DMatrix* >*>::marshal(x0);
+        std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
+        std::string& x2_ = Marshaling<std::string&,std::string*>::marshal(x2);
+        std::string& x3_ = Marshaling<std::string&,std::string*>::marshal(x3);
+        std::string& x4_ = Marshaling<std::string&,std::string*>::marshal(x4);
+        std::string& x5_ = Marshaling<std::string&,std::string*>::marshal(x5);
+        std::string& x6_ = Marshaling<std::string&,std::string*>::marshal(x6);
+
+        std::vector< casadi::DMatrix > ret = casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_, x6_);
+        return WrapReturn< std::vector< casadi::DMatrix* >*, std::vector< casadi::DMatrix > >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== function "casadi::socpOut" ===============
+// cppName: "casadi::socpOut"
+// cWrapperName: "socpOut__14"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::MX* >* x0)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "MX"))))]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "MX"))
 // args: "(x0_)"
 // cWrapperRetType: "std::vector< casadi::MX* >*"
-// proto: "std::vector< casadi::MX* >* socpOut__10(std::string ** err_msg, std::vector< casadi::MX* >* x0)"
+// proto: "std::vector< casadi::MX* >* socpOut__14(std::string ** err_msg, std::vector< casadi::MX* >* x0)"
 // call: "casadi::socpOut(x0_)"
 extern "C"
-std::vector< casadi::MX* >* socpOut__10(std::string ** err_msg, std::vector< casadi::MX* >* x0);
-std::vector< casadi::MX* >* socpOut__10(std::string ** err_msg, std::vector< casadi::MX* >* x0){
+std::vector< casadi::MX* >* socpOut__14(std::string ** err_msg, std::vector< casadi::MX* >* x0);
+std::vector< casadi::MX* >* socpOut__14(std::string ** err_msg, std::vector< casadi::MX* >* x0){
     try {
         std::vector< casadi::MX > x0_ = Marshaling<std::vector< casadi::MX >,std::vector< casadi::MX* >*>::marshal(x0);
 
@@ -29292,17 +29467,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__11"
+// cWrapperName: "socpOut__15"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "MX")))),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "MX"))
 // args: "(x0_, x1_)"
 // cWrapperRetType: "std::vector< casadi::MX* >*"
-// proto: "std::vector< casadi::MX* >* socpOut__11(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1)"
+// proto: "std::vector< casadi::MX* >* socpOut__15(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1)"
 // call: "casadi::socpOut(x0_, x1_)"
 extern "C"
-std::vector< casadi::MX* >* socpOut__11(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1);
-std::vector< casadi::MX* >* socpOut__11(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1){
+std::vector< casadi::MX* >* socpOut__15(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1);
+std::vector< casadi::MX* >* socpOut__15(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1){
     try {
         std::vector< casadi::MX > x0_ = Marshaling<std::vector< casadi::MX >,std::vector< casadi::MX* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29318,17 +29493,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__12"
+// cWrapperName: "socpOut__16"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "MX")))),Ref (Const StdString),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "MX"))
 // args: "(x0_, x1_, x2_)"
 // cWrapperRetType: "std::vector< casadi::MX* >*"
-// proto: "std::vector< casadi::MX* >* socpOut__12(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2)"
+// proto: "std::vector< casadi::MX* >* socpOut__16(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2)"
 // call: "casadi::socpOut(x0_, x1_, x2_)"
 extern "C"
-std::vector< casadi::MX* >* socpOut__12(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2);
-std::vector< casadi::MX* >* socpOut__12(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2){
+std::vector< casadi::MX* >* socpOut__16(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2);
+std::vector< casadi::MX* >* socpOut__16(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2){
     try {
         std::vector< casadi::MX > x0_ = Marshaling<std::vector< casadi::MX >,std::vector< casadi::MX* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29345,17 +29520,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__13"
+// cWrapperName: "socpOut__17"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "MX")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "MX"))
 // args: "(x0_, x1_, x2_, x3_)"
 // cWrapperRetType: "std::vector< casadi::MX* >*"
-// proto: "std::vector< casadi::MX* >* socpOut__13(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3)"
+// proto: "std::vector< casadi::MX* >* socpOut__17(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3)"
 // call: "casadi::socpOut(x0_, x1_, x2_, x3_)"
 extern "C"
-std::vector< casadi::MX* >* socpOut__13(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3);
-std::vector< casadi::MX* >* socpOut__13(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3){
+std::vector< casadi::MX* >* socpOut__17(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3);
+std::vector< casadi::MX* >* socpOut__17(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3){
     try {
         std::vector< casadi::MX > x0_ = Marshaling<std::vector< casadi::MX >,std::vector< casadi::MX* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29373,17 +29548,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__14"
+// cWrapperName: "socpOut__18"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "MX")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "MX"))
 // args: "(x0_, x1_, x2_, x3_, x4_)"
 // cWrapperRetType: "std::vector< casadi::MX* >*"
-// proto: "std::vector< casadi::MX* >* socpOut__14(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4)"
+// proto: "std::vector< casadi::MX* >* socpOut__18(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4)"
 // call: "casadi::socpOut(x0_, x1_, x2_, x3_, x4_)"
 extern "C"
-std::vector< casadi::MX* >* socpOut__14(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4);
-std::vector< casadi::MX* >* socpOut__14(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4){
+std::vector< casadi::MX* >* socpOut__18(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4);
+std::vector< casadi::MX* >* socpOut__18(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4){
     try {
         std::vector< casadi::MX > x0_ = Marshaling<std::vector< casadi::MX >,std::vector< casadi::MX* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29402,17 +29577,78 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__15"
+// cWrapperName: "socpOut__19"
+// protoArgs: "(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5)"
+// params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "MX")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
+// retType: StdVec (UserType (Namespace ["casadi"]) (Name "MX"))
+// args: "(x0_, x1_, x2_, x3_, x4_, x5_)"
+// cWrapperRetType: "std::vector< casadi::MX* >*"
+// proto: "std::vector< casadi::MX* >* socpOut__19(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5)"
+// call: "casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_)"
+extern "C"
+std::vector< casadi::MX* >* socpOut__19(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5);
+std::vector< casadi::MX* >* socpOut__19(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5){
+    try {
+        std::vector< casadi::MX > x0_ = Marshaling<std::vector< casadi::MX >,std::vector< casadi::MX* >*>::marshal(x0);
+        std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
+        std::string& x2_ = Marshaling<std::string&,std::string*>::marshal(x2);
+        std::string& x3_ = Marshaling<std::string&,std::string*>::marshal(x3);
+        std::string& x4_ = Marshaling<std::string&,std::string*>::marshal(x4);
+        std::string& x5_ = Marshaling<std::string&,std::string*>::marshal(x5);
+
+        std::vector< casadi::MX > ret = casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_);
+        return WrapReturn< std::vector< casadi::MX* >*, std::vector< casadi::MX > >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== function "casadi::socpOut" ===============
+// cppName: "casadi::socpOut"
+// cWrapperName: "socpOut__20"
+// protoArgs: "(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6)"
+// params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "MX")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
+// retType: StdVec (UserType (Namespace ["casadi"]) (Name "MX"))
+// args: "(x0_, x1_, x2_, x3_, x4_, x5_, x6_)"
+// cWrapperRetType: "std::vector< casadi::MX* >*"
+// proto: "std::vector< casadi::MX* >* socpOut__20(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6)"
+// call: "casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_, x6_)"
+extern "C"
+std::vector< casadi::MX* >* socpOut__20(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6);
+std::vector< casadi::MX* >* socpOut__20(std::string ** err_msg, std::vector< casadi::MX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6){
+    try {
+        std::vector< casadi::MX > x0_ = Marshaling<std::vector< casadi::MX >,std::vector< casadi::MX* >*>::marshal(x0);
+        std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
+        std::string& x2_ = Marshaling<std::string&,std::string*>::marshal(x2);
+        std::string& x3_ = Marshaling<std::string&,std::string*>::marshal(x3);
+        std::string& x4_ = Marshaling<std::string&,std::string*>::marshal(x4);
+        std::string& x5_ = Marshaling<std::string&,std::string*>::marshal(x5);
+        std::string& x6_ = Marshaling<std::string&,std::string*>::marshal(x6);
+
+        std::vector< casadi::MX > ret = casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_, x6_);
+        return WrapReturn< std::vector< casadi::MX* >*, std::vector< casadi::MX > >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== function "casadi::socpOut" ===============
+// cppName: "casadi::socpOut"
+// cWrapperName: "socpOut__21"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::SX* >* x0)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "SX"))))]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "SX"))
 // args: "(x0_)"
 // cWrapperRetType: "std::vector< casadi::SX* >*"
-// proto: "std::vector< casadi::SX* >* socpOut__15(std::string ** err_msg, std::vector< casadi::SX* >* x0)"
+// proto: "std::vector< casadi::SX* >* socpOut__21(std::string ** err_msg, std::vector< casadi::SX* >* x0)"
 // call: "casadi::socpOut(x0_)"
 extern "C"
-std::vector< casadi::SX* >* socpOut__15(std::string ** err_msg, std::vector< casadi::SX* >* x0);
-std::vector< casadi::SX* >* socpOut__15(std::string ** err_msg, std::vector< casadi::SX* >* x0){
+std::vector< casadi::SX* >* socpOut__21(std::string ** err_msg, std::vector< casadi::SX* >* x0);
+std::vector< casadi::SX* >* socpOut__21(std::string ** err_msg, std::vector< casadi::SX* >* x0){
     try {
         std::vector< casadi::SX > x0_ = Marshaling<std::vector< casadi::SX >,std::vector< casadi::SX* >*>::marshal(x0);
 
@@ -29427,17 +29663,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__16"
+// cWrapperName: "socpOut__22"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "SX")))),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "SX"))
 // args: "(x0_, x1_)"
 // cWrapperRetType: "std::vector< casadi::SX* >*"
-// proto: "std::vector< casadi::SX* >* socpOut__16(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1)"
+// proto: "std::vector< casadi::SX* >* socpOut__22(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1)"
 // call: "casadi::socpOut(x0_, x1_)"
 extern "C"
-std::vector< casadi::SX* >* socpOut__16(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1);
-std::vector< casadi::SX* >* socpOut__16(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1){
+std::vector< casadi::SX* >* socpOut__22(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1);
+std::vector< casadi::SX* >* socpOut__22(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1){
     try {
         std::vector< casadi::SX > x0_ = Marshaling<std::vector< casadi::SX >,std::vector< casadi::SX* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29453,17 +29689,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__17"
+// cWrapperName: "socpOut__23"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "SX")))),Ref (Const StdString),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "SX"))
 // args: "(x0_, x1_, x2_)"
 // cWrapperRetType: "std::vector< casadi::SX* >*"
-// proto: "std::vector< casadi::SX* >* socpOut__17(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2)"
+// proto: "std::vector< casadi::SX* >* socpOut__23(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2)"
 // call: "casadi::socpOut(x0_, x1_, x2_)"
 extern "C"
-std::vector< casadi::SX* >* socpOut__17(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2);
-std::vector< casadi::SX* >* socpOut__17(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2){
+std::vector< casadi::SX* >* socpOut__23(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2);
+std::vector< casadi::SX* >* socpOut__23(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2){
     try {
         std::vector< casadi::SX > x0_ = Marshaling<std::vector< casadi::SX >,std::vector< casadi::SX* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29480,17 +29716,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__18"
+// cWrapperName: "socpOut__24"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "SX")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "SX"))
 // args: "(x0_, x1_, x2_, x3_)"
 // cWrapperRetType: "std::vector< casadi::SX* >*"
-// proto: "std::vector< casadi::SX* >* socpOut__18(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3)"
+// proto: "std::vector< casadi::SX* >* socpOut__24(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3)"
 // call: "casadi::socpOut(x0_, x1_, x2_, x3_)"
 extern "C"
-std::vector< casadi::SX* >* socpOut__18(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3);
-std::vector< casadi::SX* >* socpOut__18(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3){
+std::vector< casadi::SX* >* socpOut__24(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3);
+std::vector< casadi::SX* >* socpOut__24(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3){
     try {
         std::vector< casadi::SX > x0_ = Marshaling<std::vector< casadi::SX >,std::vector< casadi::SX* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29508,17 +29744,17 @@
 
 // ================== function "casadi::socpOut" ===============
 // cppName: "casadi::socpOut"
-// cWrapperName: "socpOut__19"
+// cWrapperName: "socpOut__25"
 // protoArgs: "(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4)"
 // params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "SX")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
 // retType: StdVec (UserType (Namespace ["casadi"]) (Name "SX"))
 // args: "(x0_, x1_, x2_, x3_, x4_)"
 // cWrapperRetType: "std::vector< casadi::SX* >*"
-// proto: "std::vector< casadi::SX* >* socpOut__19(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4)"
+// proto: "std::vector< casadi::SX* >* socpOut__25(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4)"
 // call: "casadi::socpOut(x0_, x1_, x2_, x3_, x4_)"
 extern "C"
-std::vector< casadi::SX* >* socpOut__19(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4);
-std::vector< casadi::SX* >* socpOut__19(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4){
+std::vector< casadi::SX* >* socpOut__25(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4);
+std::vector< casadi::SX* >* socpOut__25(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4){
     try {
         std::vector< casadi::SX > x0_ = Marshaling<std::vector< casadi::SX >,std::vector< casadi::SX* >*>::marshal(x0);
         std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
@@ -29535,6 +29771,67 @@
 }
 
 
+// ================== function "casadi::socpOut" ===============
+// cppName: "casadi::socpOut"
+// cWrapperName: "socpOut__26"
+// protoArgs: "(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5)"
+// params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "SX")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
+// retType: StdVec (UserType (Namespace ["casadi"]) (Name "SX"))
+// args: "(x0_, x1_, x2_, x3_, x4_, x5_)"
+// cWrapperRetType: "std::vector< casadi::SX* >*"
+// proto: "std::vector< casadi::SX* >* socpOut__26(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5)"
+// call: "casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_)"
+extern "C"
+std::vector< casadi::SX* >* socpOut__26(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5);
+std::vector< casadi::SX* >* socpOut__26(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5){
+    try {
+        std::vector< casadi::SX > x0_ = Marshaling<std::vector< casadi::SX >,std::vector< casadi::SX* >*>::marshal(x0);
+        std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
+        std::string& x2_ = Marshaling<std::string&,std::string*>::marshal(x2);
+        std::string& x3_ = Marshaling<std::string&,std::string*>::marshal(x3);
+        std::string& x4_ = Marshaling<std::string&,std::string*>::marshal(x4);
+        std::string& x5_ = Marshaling<std::string&,std::string*>::marshal(x5);
+
+        std::vector< casadi::SX > ret = casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_);
+        return WrapReturn< std::vector< casadi::SX* >*, std::vector< casadi::SX > >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== function "casadi::socpOut" ===============
+// cppName: "casadi::socpOut"
+// cWrapperName: "socpOut__27"
+// protoArgs: "(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6)"
+// params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "SX")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
+// retType: StdVec (UserType (Namespace ["casadi"]) (Name "SX"))
+// args: "(x0_, x1_, x2_, x3_, x4_, x5_, x6_)"
+// cWrapperRetType: "std::vector< casadi::SX* >*"
+// proto: "std::vector< casadi::SX* >* socpOut__27(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6)"
+// call: "casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_, x6_)"
+extern "C"
+std::vector< casadi::SX* >* socpOut__27(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6);
+std::vector< casadi::SX* >* socpOut__27(std::string ** err_msg, std::vector< casadi::SX* >* x0, std::string* x1, std::string* x2, std::string* x3, std::string* x4, std::string* x5, std::string* x6){
+    try {
+        std::vector< casadi::SX > x0_ = Marshaling<std::vector< casadi::SX >,std::vector< casadi::SX* >*>::marshal(x0);
+        std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
+        std::string& x2_ = Marshaling<std::string&,std::string*>::marshal(x2);
+        std::string& x3_ = Marshaling<std::string&,std::string*>::marshal(x3);
+        std::string& x4_ = Marshaling<std::string&,std::string*>::marshal(x4);
+        std::string& x5_ = Marshaling<std::string&,std::string*>::marshal(x5);
+        std::string& x6_ = Marshaling<std::string&,std::string*>::marshal(x6);
+
+        std::vector< casadi::SX > ret = casadi::socpOut(x0_, x1_, x2_, x3_, x4_, x5_, x6_);
+        return WrapReturn< std::vector< casadi::SX* >*, std::vector< casadi::SX > >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
 // ================== function "casadi::socpStruct" ===============
 // cppName: "casadi::socpStruct"
 // cWrapperName: "socpStruct__0"
@@ -29605,6 +29902,34 @@
         std::string& x2_ = Marshaling<std::string&,std::string*>::marshal(x2);
 
         std::vector< casadi::Sparsity > ret = casadi::socpStruct(x0_, x1_, x2_);
+        return WrapReturn< std::vector< casadi::Sparsity* >*, std::vector< casadi::Sparsity > >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== function "casadi::socpStruct" ===============
+// cppName: "casadi::socpStruct"
+// cWrapperName: "socpStruct__3"
+// protoArgs: "(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3)"
+// params: [Ref (Const (StdVec (UserType (Namespace ["casadi"]) (Name "Sparsity")))),Ref (Const StdString),Ref (Const StdString),Ref (Const StdString)]
+// retType: StdVec (UserType (Namespace ["casadi"]) (Name "Sparsity"))
+// args: "(x0_, x1_, x2_, x3_)"
+// cWrapperRetType: "std::vector< casadi::Sparsity* >*"
+// proto: "std::vector< casadi::Sparsity* >* socpStruct__3(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3)"
+// call: "casadi::socpStruct(x0_, x1_, x2_, x3_)"
+extern "C"
+std::vector< casadi::Sparsity* >* socpStruct__3(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3);
+std::vector< casadi::Sparsity* >* socpStruct__3(std::string ** err_msg, std::vector< casadi::Sparsity* >* x0, std::string* x1, std::string* x2, std::string* x3){
+    try {
+        std::vector< casadi::Sparsity > x0_ = Marshaling<std::vector< casadi::Sparsity >,std::vector< casadi::Sparsity* >*>::marshal(x0);
+        std::string& x1_ = Marshaling<std::string&,std::string*>::marshal(x1);
+        std::string& x2_ = Marshaling<std::string&,std::string*>::marshal(x2);
+        std::string& x3_ = Marshaling<std::string&,std::string*>::marshal(x3);
+
+        std::vector< casadi::Sparsity > ret = casadi::socpStruct(x0_, x1_, x2_, x3_);
         return WrapReturn< std::vector< casadi::Sparsity* >*, std::vector< casadi::Sparsity > >::wrapReturn( ret );
     } catch (std::exception& ex) {
          *err_msg = new std::string(ex.what());
