diff --git a/Casadi/IpoptInterface/Classes/IpoptSolver.hs b/Casadi/IpoptInterface/Classes/IpoptSolver.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/IpoptInterface/Classes/IpoptSolver.hs
@@ -0,0 +1,116 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# Language ForeignFunctionInterface #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.IpoptInterface.Classes.IpoptSolver
+       (
+         IpoptSolver,
+         IpoptSolverClass(..),
+         ipoptSolver__0,
+         ipoptSolver__1,
+         ipoptSolver_creator,
+         ipoptSolver_getReducedHessian,
+       ) 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.IpoptInterface.Data
+import Casadi.IpoptInterface.Enums
+import Casadi.Core.Data
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__IpoptSolver__CONSTRUCTOR__0" c_casadi__IpoptSolver__CONSTRUCTOR__0
+  :: Ptr (Ptr StdString) -> Ptr Function' -> IO (Ptr IpoptSolver')
+casadi__IpoptSolver__CONSTRUCTOR__0
+  :: Function -> IO IpoptSolver
+casadi__IpoptSolver__CONSTRUCTOR__0 x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__IpoptSolver__CONSTRUCTOR__0 errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+ipoptSolver__0 :: Function -> IO IpoptSolver
+ipoptSolver__0 = casadi__IpoptSolver__CONSTRUCTOR__0
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__IpoptSolver__CONSTRUCTOR__1" c_casadi__IpoptSolver__CONSTRUCTOR__1
+  :: Ptr (Ptr StdString) -> IO (Ptr IpoptSolver')
+casadi__IpoptSolver__CONSTRUCTOR__1
+  :: IO IpoptSolver
+casadi__IpoptSolver__CONSTRUCTOR__1  =
+
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__IpoptSolver__CONSTRUCTOR__1 errStrPtrP 
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+ipoptSolver__1 :: IO IpoptSolver
+ipoptSolver__1 = casadi__IpoptSolver__CONSTRUCTOR__1
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__IpoptSolver__creator" c_casadi__IpoptSolver__creator
+  :: Ptr (Ptr StdString) -> Ptr Function' -> IO (Ptr NLPSolver')
+casadi__IpoptSolver__creator
+  :: Function -> IO NLPSolver
+casadi__IpoptSolver__creator x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__IpoptSolver__creator errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+ipoptSolver_creator :: Function -> IO NLPSolver
+ipoptSolver_creator = casadi__IpoptSolver__creator
+
+
+-- direct wrapper
+foreign import ccall unsafe "casadi__IpoptSolver__getReducedHessian" c_casadi__IpoptSolver__getReducedHessian
+  :: Ptr (Ptr StdString) -> Ptr IpoptSolver' -> IO (Ptr DMatrix')
+casadi__IpoptSolver__getReducedHessian
+  :: IpoptSolver -> IO DMatrix
+casadi__IpoptSolver__getReducedHessian x0 =
+  withMarshal x0 $ \x0' ->
+  do
+    errStrPtrP <- new nullPtr
+    ret <- c_casadi__IpoptSolver__getReducedHessian errStrPtrP x0'
+    errStrPtr <- peek errStrPtrP
+    free errStrPtrP
+    if errStrPtr == nullPtr then wrapReturn ret else wrapReturn errStrPtr >>= (error . formatException)
+
+
+-- classy wrapper
+ipoptSolver_getReducedHessian :: IpoptSolverClass a => a -> IO DMatrix
+ipoptSolver_getReducedHessian x = casadi__IpoptSolver__getReducedHessian (castIpoptSolver x)
+
diff --git a/Casadi/IpoptInterface/Data.hs b/Casadi/IpoptInterface/Data.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/IpoptInterface/Data.hs
@@ -0,0 +1,3143 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# Language FlexibleInstances #-}
+{-# Language MultiParamTypeClasses #-}
+
+module Casadi.IpoptInterface.Data where
+
+import Prelude hiding ( Functor )
+
+import Foreign.Ptr ( Ptr, FunPtr )
+import Foreign.ForeignPtr ( ForeignPtr, castForeignPtr, newForeignPtr, touchForeignPtr )
+import Foreign.ForeignPtr.Unsafe ( unsafeForeignPtrToPtr )
+
+import Casadi.Internal.Marshal (  Marshal(..) )
+import Casadi.Internal.WrapReturn ( WrapReturn(..) )
+import Casadi.Core.Data
+
+-- raw decl
+data IpoptSolver'
+-- data decl
+{-|
+>interface to IPOPT NLP solver
+>
+>Solves the following parametric nonlinear program (NLP):min          F(x, p)
+>x  subject to             LBX <=   x    <= UBX LBG <= G(x, p) <= UBG
+>p  == P      nx: number of decision variables     ng: number of constraints
+>np: number of parameters
+>
+>When in warmstart mode, output NLP_SOLVER_LAM_X may be used as input
+>
+>NOTE: Even when max_iter == 0, it is not guaranteed that
+>input(NLP_SOLVER_X0) == output(NLP_SOLVER_X). Indeed if bounds on X or
+>constraints are unmet, they will differ.
+>
+>For a good tutorial on IPOPT,
+>seehttp://drops.dagstuhl.de/volltexte/2009/2089/pdf/09061.WaechterAndreas.Paper.2089.pdf
+>
+>A good resource about the algorithms in IPOPT is: Wachter and L. T. Biegler,
+>On the Implementation of an Interior-Point Filter Line-Search Algorithm for
+>Large-Scale Nonlinear Programming, Mathematical Programming 106(1), pp.
+>25-57, 2006 (As Research Report RC 23149, IBM T. J. Watson Research Center,
+>Yorktown, USA
+>
+>Caveats: with default options, multipliers for the decision variables are
+>wrong for equality constraints. Change the 'fixed_variable_treatment' to
+>'make_constraint' or 'relax_bounds' to obtain correct results.
+>
+>>Input scheme: casadi::NLPSolverInput (NLP_SOLVER_NUM_IN = 9) [nlpSolverIn]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| NLP_SOLVER_X0          | x0                     | Decision variables,    |
+>|                        |                        | initial guess (nx x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_P           | p                      | Value of fixed         |
+>|                        |                        | parameters (np x 1) .  |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LBX         | lbx                    | Decision variables     |
+>|                        |                        | lower bound (nx x 1),  |
+>|                        |                        | default -inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_UBX         | ubx                    | Decision variables     |
+>|                        |                        | upper bound (nx x 1),  |
+>|                        |                        | default +inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LBG         | lbg                    | Constraints lower      |
+>|                        |                        | bound (ng x 1),        |
+>|                        |                        | default -inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_UBG         | ubg                    | Constraints upper      |
+>|                        |                        | bound (ng x 1),        |
+>|                        |                        | default +inf .         |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_X0      | lam_x0                 | Lagrange multipliers   |
+>|                        |                        | for bounds on X,       |
+>|                        |                        | initial guess (nx x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_G0      | lam_g0                 | Lagrange multipliers   |
+>|                        |                        | for bounds on G,       |
+>|                        |                        | initial guess (ng x 1) |
+>|                        |                        | .                      |
+>+------------------------+------------------------+------------------------+
+>
+>>Output scheme: casadi::NLPSolverOutput (NLP_SOLVER_NUM_OUT = 7) [nlpSolverOut]
+>+------------------------+------------------------+------------------------+
+>|       Full name        |         Short          |      Description       |
+>+========================+========================+========================+
+>| NLP_SOLVER_X           | x                      | Decision variables at  |
+>|                        |                        | the optimal solution   |
+>|                        |                        | (nx x 1) .             |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_F           | f                      | Cost function value at |
+>|                        |                        | the optimal solution   |
+>|                        |                        | (1 x 1) .              |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_G           | g                      | Constraints function   |
+>|                        |                        | at the optimal         |
+>|                        |                        | solution (ng x 1) .    |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_X       | lam_x                  | Lagrange multipliers   |
+>|                        |                        | for bounds on X at the |
+>|                        |                        | solution (nx x 1) .    |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_G       | lam_g                  | Lagrange multipliers   |
+>|                        |                        | for bounds on G at the |
+>|                        |                        | solution (ng x 1) .    |
+>+------------------------+------------------------+------------------------+
+>| NLP_SOLVER_LAM_P       | lam_p                  | Lagrange multipliers   |
+>|                        |                        | for bounds on P at the |
+>|                        |                        | solution (np x 1) .    |
+>+------------------------+------------------------+------------------------+
+>
+>>List of available options
+>+--------------+--------------+--------------+--------------+--------------+
+>|      Id      |     Type     |   Default    | Description  |   Used in    |
+>+==============+==============+==============+==============+==============+
+>| accept_after | OT_INTEGER   | -1           | Accept a     | casadi::Ipop |
+>| _max_steps   |              |              | trial point  | tInternal    |
+>|              |              |              | after        |              |
+>|              |              |              | maximal this |              |
+>|              |              |              | number of    |              |
+>|              |              |              | steps. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| accept_every | OT_STRING    | no           | Always       | casadi::Ipop |
+>| _trial_step  |              |              | accept the   | tInternal    |
+>|              |              |              | first trial  |              |
+>|              |              |              | step. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| acceptable_c | OT_REAL      | 0.010        | "Acceptance" | casadi::Ipop |
+>| ompl_inf_tol |              |              | threshold    | tInternal    |
+>|              |              |              | for the comp |              |
+>|              |              |              | lementarity  |              |
+>|              |              |              | conditions.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| acceptable_c | OT_REAL      | 0.010        | "Acceptance" | casadi::Ipop |
+>| onstr_viol_t |              |              | threshold    | tInternal    |
+>| ol           |              |              | for the      |              |
+>|              |              |              | constraint   |              |
+>|              |              |              | violation.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| acceptable_d | OT_REAL      | 1.000e+10    | "Acceptance" | casadi::Ipop |
+>| ual_inf_tol  |              |              | threshold    | tInternal    |
+>|              |              |              | for the dual |              |
+>|              |              |              | infeasibilit |              |
+>|              |              |              | y. (see      |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| acceptable_i | OT_INTEGER   | 15           | Number of    | casadi::Ipop |
+>| ter          |              |              | "acceptable" | tInternal    |
+>|              |              |              | iterates     |              |
+>|              |              |              | before       |              |
+>|              |              |              | triggering   |              |
+>|              |              |              | termination. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| acceptable_o | OT_REAL      | 1.000e+20    | "Acceptance" | casadi::Ipop |
+>| bj_change_to |              |              | stopping     | tInternal    |
+>| l            |              |              | criterion    |              |
+>|              |              |              | based on     |              |
+>|              |              |              | objective    |              |
+>|              |              |              | function     |              |
+>|              |              |              | change. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| acceptable_t | OT_REAL      | 0.000        | "Acceptable" | casadi::Ipop |
+>| ol           |              |              | convergence  | tInternal    |
+>|              |              |              | tolerance    |              |
+>|              |              |              | (relative).  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ad_mode      | OT_STRING    | "automatic"  | How to       | casadi::Func |
+>|              |              |              | calculate    | tionInternal |
+>|              |              |              | the          |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (forward:    |              |
+>|              |              |              | only forward |              |
+>|              |              |              | mode|reverse |              |
+>|              |              |              | : only       |              |
+>|              |              |              | adjoint mode |              |
+>|              |              |              | |automatic:  |              |
+>|              |              |              | a heuristic  |              |
+>|              |              |              | decides      |              |
+>|              |              |              | which is     |              |
+>|              |              |              | more         |              |
+>|              |              |              | appropriate) |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| adaptive_mu_ | OT_STRING    | obj-constr-  | Globalizatio | casadi::Ipop |
+>| globalizatio |              | filter       | n strategy   | tInternal    |
+>| n            |              |              | for the      |              |
+>|              |              |              | adaptive mu  |              |
+>|              |              |              | selection    |              |
+>|              |              |              | mode. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| adaptive_mu_ | OT_STRING    | 2-norm-      | Norm used    | casadi::Ipop |
+>| kkt_norm_typ |              | squared      | for the KKT  | tInternal    |
+>| e            |              |              | error in the |              |
+>|              |              |              | adaptive mu  |              |
+>|              |              |              | globalizatio |              |
+>|              |              |              | n            |              |
+>|              |              |              | strategies.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| adaptive_mu_ | OT_REAL      | 1.000        | Sufficient   | casadi::Ipop |
+>| kkterror_red |              |              | decrease     | tInternal    |
+>| _fact        |              |              | factor for   |              |
+>|              |              |              | "kkt-error"  |              |
+>|              |              |              | globalizatio |              |
+>|              |              |              | n strategy.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| adaptive_mu_ | OT_INTEGER   | 4            | Maximum      | casadi::Ipop |
+>| kkterror_red |              |              | number of    | tInternal    |
+>| _iters       |              |              | iterations   |              |
+>|              |              |              | requiring    |              |
+>|              |              |              | sufficient   |              |
+>|              |              |              | progress.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| adaptive_mu_ | OT_REAL      | 0.800        | Determines   | casadi::Ipop |
+>| monotone_ini |              |              | the initial  | tInternal    |
+>| t_factor     |              |              | value of the |              |
+>|              |              |              | barrier      |              |
+>|              |              |              | parameter    |              |
+>|              |              |              | when         |              |
+>|              |              |              | switching to |              |
+>|              |              |              | the monotone |              |
+>|              |              |              | mode. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| adaptive_mu_ | OT_STRING    | no           | Indicates if | casadi::Ipop |
+>| restore_prev |              |              | the previous | tInternal    |
+>| ious_iterate |              |              | iterate      |              |
+>|              |              |              | should be    |              |
+>|              |              |              | restored if  |              |
+>|              |              |              | the monotone |              |
+>|              |              |              | mode is      |              |
+>|              |              |              | entered.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| adaptive_mu_ | OT_REAL      | 0            | (see IPOPT d | casadi::Ipop |
+>| safeguard_fa |              |              | ocumentation | tInternal    |
+>| ctor         |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| alpha_for_y  | OT_STRING    | primal       | Method to    | casadi::Ipop |
+>|              |              |              | determine    | tInternal    |
+>|              |              |              | the step     |              |
+>|              |              |              | size for     |              |
+>|              |              |              | constraint   |              |
+>|              |              |              | multipliers. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| alpha_for_y_ | OT_REAL      | 10           | Tolerance    | casadi::Ipop |
+>| tol          |              |              | for          | tInternal    |
+>|              |              |              | switching to |              |
+>|              |              |              | full         |              |
+>|              |              |              | equality     |              |
+>|              |              |              | multiplier   |              |
+>|              |              |              | steps. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| alpha_min_fr | OT_REAL      | 0.050        | Safety       | casadi::Ipop |
+>| ac           |              |              | factor for   | tInternal    |
+>|              |              |              | the minimal  |              |
+>|              |              |              | step size    |              |
+>|              |              |              | (before      |              |
+>|              |              |              | switching to |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase). (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| alpha_red_fa | OT_REAL      | 0.500        | Fractional   | casadi::Ipop |
+>| ctor         |              |              | reduction of | tInternal    |
+>|              |              |              | the trial    |              |
+>|              |              |              | step size in |              |
+>|              |              |              | the          |              |
+>|              |              |              | backtracking |              |
+>|              |              |              | line search. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| barrier_tol_ | OT_REAL      | 10           | Factor for   | casadi::Ipop |
+>| factor       |              |              | mu in        | tInternal    |
+>|              |              |              | barrier stop |              |
+>|              |              |              | test. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| bound_frac   | OT_REAL      | 0.010        | Desired      | casadi::Ipop |
+>|              |              |              | minimum      | tInternal    |
+>|              |              |              | relative     |              |
+>|              |              |              | distance     |              |
+>|              |              |              | from the     |              |
+>|              |              |              | initial      |              |
+>|              |              |              | point to     |              |
+>|              |              |              | bound. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| bound_mult_i | OT_STRING    | constant     | Initializati | casadi::Ipop |
+>| nit_method   |              |              | on method    | tInternal    |
+>|              |              |              | for bound    |              |
+>|              |              |              | multipliers  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| bound_mult_i | OT_REAL      | 1            | Initial      | casadi::Ipop |
+>| nit_val      |              |              | value for    | tInternal    |
+>|              |              |              | the bound    |              |
+>|              |              |              | multipliers. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| bound_mult_r | OT_REAL      | 1000         | Threshold    | casadi::Ipop |
+>| eset_thresho |              |              | for          | tInternal    |
+>| ld           |              |              | resetting    |              |
+>|              |              |              | bound        |              |
+>|              |              |              | multipliers  |              |
+>|              |              |              | after the    |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| bound_push   | OT_REAL      | 0.010        | Desired      | casadi::Ipop |
+>|              |              |              | minimum      | tInternal    |
+>|              |              |              | absolute     |              |
+>|              |              |              | distance     |              |
+>|              |              |              | from the     |              |
+>|              |              |              | initial      |              |
+>|              |              |              | point to     |              |
+>|              |              |              | bound. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| bound_relax_ | OT_REAL      | 0.000        | Factor for   | casadi::Ipop |
+>| factor       |              |              | initial      | tInternal    |
+>|              |              |              | relaxation   |              |
+>|              |              |              | of the       |              |
+>|              |              |              | bounds. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| check_deriva | OT_STRING    | no           | Indicates    | casadi::Ipop |
+>| tives_for_na |              |              | whether it   | tInternal    |
+>| ninf         |              |              | is desired   |              |
+>|              |              |              | to check for |              |
+>|              |              |              | Nan/Inf in   |              |
+>|              |              |              | derivative   |              |
+>|              |              |              | matrices     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| chi_cup      | OT_REAL      | 1.500        | LIFENG       | casadi::Ipop |
+>|              |              |              | WRITES THIS. | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| chi_hat      | OT_REAL      | 2            | LIFENG       | casadi::Ipop |
+>|              |              |              | WRITES THIS. | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| chi_tilde    | OT_REAL      | 5            | LIFENG       | casadi::Ipop |
+>|              |              |              | WRITES THIS. | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| compl_inf_to | OT_REAL      | 0.000        | Desired      | casadi::Ipop |
+>| l            |              |              | threshold    | tInternal    |
+>|              |              |              | for the comp |              |
+>|              |              |              | lementarity  |              |
+>|              |              |              | conditions.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| con_integer_ | OT_DICTIONAR | None         | Integer      | casadi::Ipop |
+>| md           | Y            |              | metadata (a  | tInternal    |
+>|              |              |              | dictionary   |              |
+>|              |              |              | with lists   |              |
+>|              |              |              | of integers) |              |
+>|              |              |              | about        |              |
+>|              |              |              | constraints  |              |
+>|              |              |              | to be passed |              |
+>|              |              |              | to IPOPT     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| con_numeric_ | OT_DICTIONAR | None         | Numeric      | casadi::Ipop |
+>| md           | Y            |              | metadata (a  | tInternal    |
+>|              |              |              | dictionary   |              |
+>|              |              |              | with lists   |              |
+>|              |              |              | of reals)    |              |
+>|              |              |              | about        |              |
+>|              |              |              | constraints  |              |
+>|              |              |              | to be passed |              |
+>|              |              |              | to IPOPT     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| con_string_m | OT_DICTIONAR | None         | String       | casadi::Ipop |
+>| d            | Y            |              | metadata (a  | tInternal    |
+>|              |              |              | dictionary   |              |
+>|              |              |              | with lists   |              |
+>|              |              |              | of strings)  |              |
+>|              |              |              | about        |              |
+>|              |              |              | constraints  |              |
+>|              |              |              | to be passed |              |
+>|              |              |              | to IPOPT     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| constr_mult_ | OT_REAL      | 1000         | Maximum      | casadi::Ipop |
+>| init_max     |              |              | allowed      | tInternal    |
+>|              |              |              | least-square |              |
+>|              |              |              | guess of     |              |
+>|              |              |              | constraint   |              |
+>|              |              |              | multipliers. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| constr_mult_ | OT_REAL      | 0            | Threshold    | casadi::Ipop |
+>| reset_thresh |              |              | for          | tInternal    |
+>| old          |              |              | resetting    |              |
+>|              |              |              | equality and |              |
+>|              |              |              | inequality   |              |
+>|              |              |              | multipliers  |              |
+>|              |              |              | after        |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| constr_viol_ | OT_REAL      | 0.000        | Desired      | casadi::Ipop |
+>| tol          |              |              | threshold    | tInternal    |
+>|              |              |              | for the      |              |
+>|              |              |              | constraint   |              |
+>|              |              |              | violation.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| constraint_v | OT_STRING    | 1-norm       | Norm to be   | casadi::Ipop |
+>| iolation_nor |              |              | used for the | tInternal    |
+>| m_type       |              |              | constraint   |              |
+>|              |              |              | violation in |              |
+>|              |              |              | the line     |              |
+>|              |              |              | search. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| corrector_co | OT_REAL      | 1            | Complementar | casadi::Ipop |
+>| mpl_avrg_red |              |              | ity          | tInternal    |
+>| _fact        |              |              | tolerance    |              |
+>|              |              |              | factor for   |              |
+>|              |              |              | accepting    |              |
+>|              |              |              | corrector    |              |
+>|              |              |              | step (unsupp |              |
+>|              |              |              | orted!).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| corrector_ty | OT_STRING    | none         | The type of  | casadi::Ipop |
+>| pe           |              |              | corrector    | tInternal    |
+>|              |              |              | steps that   |              |
+>|              |              |              | should be    |              |
+>|              |              |              | taken (unsup |              |
+>|              |              |              | ported!).    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| delta        | OT_REAL      | 1            | Multiplier   | casadi::Ipop |
+>|              |              |              | for          | tInternal    |
+>|              |              |              | constraint   |              |
+>|              |              |              | violation in |              |
+>|              |              |              | the          |              |
+>|              |              |              | switching    |              |
+>|              |              |              | rule. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| delta_y_max  | OT_REAL      | 1.000e+12    | a parameter  | casadi::Ipop |
+>|              |              |              | used to      | tInternal    |
+>|              |              |              | check if the |              |
+>|              |              |              | fast         |              |
+>|              |              |              | direction    |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | asthe line   |              |
+>|              |              |              | search       |              |
+>|              |              |              | direction    |              |
+>|              |              |              | (for Chen-   |              |
+>|              |              |              | Goldfarb     |              |
+>|              |              |              | line         |              |
+>|              |              |              | search).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| dependency_d | OT_STRING    | no           | Indicates if | casadi::Ipop |
+>| etection_wit |              |              | the right    | tInternal    |
+>| h_rhs        |              |              | hand sides   |              |
+>|              |              |              | of the       |              |
+>|              |              |              | constraints  |              |
+>|              |              |              | should be    |              |
+>|              |              |              | considered   |              |
+>|              |              |              | during       |              |
+>|              |              |              | dependency   |              |
+>|              |              |              | detection    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| dependency_d | OT_STRING    | none         | Indicates    | casadi::Ipop |
+>| etector      |              |              | which linear | tInternal    |
+>|              |              |              | solver       |              |
+>|              |              |              | should be    |              |
+>|              |              |              | used to      |              |
+>|              |              |              | detect       |              |
+>|              |              |              | linearly     |              |
+>|              |              |              | dependent    |              |
+>|              |              |              | equality     |              |
+>|              |              |              | constraints. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_g | OT_DERIVATIV | GenericType( | Function     | casadi::Func |
+>| enerator     | EGENERATOR   | )            | that returns | tionInternal |
+>|              |              |              | a derivative |              |
+>|              |              |              | function     |              |
+>|              |              |              | given a      |              |
+>|              |              |              | number of    |              |
+>|              |              |              | forward and  |              |
+>|              |              |              | reverse      |              |
+>|              |              |              | directional  |              |
+>|              |              |              | derivative,  |              |
+>|              |              |              | overrides    |              |
+>|              |              |              | internal     |              |
+>|              |              |              | routines.    |              |
+>|              |              |              | Check docume |              |
+>|              |              |              | ntation of D |              |
+>|              |              |              | erivativeGen |              |
+>|              |              |              | erator .     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_t | OT_STRING    | none         | Enable       | casadi::Ipop |
+>| est          |              |              | derivative   | tInternal    |
+>|              |              |              | checker (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_t | OT_INTEGER   | -2           | Index of     | casadi::Ipop |
+>| est_first_in |              |              | first        | tInternal    |
+>| dex          |              |              | quantity to  |              |
+>|              |              |              | be checked   |              |
+>|              |              |              | by           |              |
+>|              |              |              | derivative   |              |
+>|              |              |              | checker (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_t | OT_REAL      | 0.000        | Size of the  | casadi::Ipop |
+>| est_perturba |              |              | finite       | tInternal    |
+>| tion         |              |              | difference   |              |
+>|              |              |              | perturbation |              |
+>|              |              |              | in           |              |
+>|              |              |              | derivative   |              |
+>|              |              |              | test. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_t | OT_STRING    | no           | Indicates    | casadi::Ipop |
+>| est_print_al |              |              | whether      | tInternal    |
+>| l            |              |              | information  |              |
+>|              |              |              | for all      |              |
+>|              |              |              | estimated    |              |
+>|              |              |              | derivatives  |              |
+>|              |              |              | should be    |              |
+>|              |              |              | printed.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| derivative_t | OT_REAL      | 0.000        | Threshold    | casadi::Ipop |
+>| est_tol      |              |              | for          | tInternal    |
+>|              |              |              | indicating   |              |
+>|              |              |              | wrong        |              |
+>|              |              |              | derivative.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| diverging_it | OT_REAL      | 1.000e+20    | Threshold    | casadi::Ipop |
+>| erates_tol   |              |              | for maximal  | tInternal    |
+>|              |              |              | value of     |              |
+>|              |              |              | primal       |              |
+>|              |              |              | iterates.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| dual_inf_tol | OT_REAL      | 1            | Desired      | casadi::Ipop |
+>|              |              |              | threshold    | tInternal    |
+>|              |              |              | for the dual |              |
+>|              |              |              | infeasibilit |              |
+>|              |              |              | y. (see      |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| epsilon_c    | OT_REAL      | 0.010        | LIFENG       | casadi::Ipop |
+>|              |              |              | WRITES THIS. | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| eta_min      | OT_REAL      | 10           | LIFENG       | casadi::Ipop |
+>|              |              |              | WRITES THIS. | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| eta_penalty  | OT_REAL      | 0.000        | Relaxation   | casadi::Ipop |
+>|              |              |              | factor in    | tInternal    |
+>|              |              |              | the Armijo   |              |
+>|              |              |              | condition    |              |
+>|              |              |              | for the      |              |
+>|              |              |              | penalty      |              |
+>|              |              |              | function.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| eta_phi      | OT_REAL      | 0.000        | Relaxation   | casadi::Ipop |
+>|              |              |              | factor in    | tInternal    |
+>|              |              |              | the Armijo   |              |
+>|              |              |              | condition.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| evaluate_ori | OT_STRING    | yes          | Determines   | casadi::Ipop |
+>| g_obj_at_res |              |              | if the       | tInternal    |
+>| to_trial     |              |              | original     |              |
+>|              |              |              | objective    |              |
+>|              |              |              | function     |              |
+>|              |              |              | should be    |              |
+>|              |              |              | evaluated at |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase trial  |              |
+>|              |              |              | points. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| expand       | OT_BOOLEAN   | false        | Expand the   | casadi::NLPS |
+>|              |              |              | NLP function | olverInterna |
+>|              |              |              | in terms of  | l            |
+>|              |              |              | scalar       |              |
+>|              |              |              | operations,  |              |
+>|              |              |              | i.e. MX->SX  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| expect_infea | OT_STRING    | no           | Enable       | casadi::Ipop |
+>| sible_proble |              |              | heuristics   | tInternal    |
+>| m            |              |              | to quickly   |              |
+>|              |              |              | detect an    |              |
+>|              |              |              | infeasible   |              |
+>|              |              |              | problem.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| expect_infea | OT_REAL      | 0.001        | Threshold    | casadi::Ipop |
+>| sible_proble |              |              | for          | tInternal    |
+>| m_ctol       |              |              | disabling "e |              |
+>|              |              |              | xpect_infeas |              |
+>|              |              |              | ible_problem |              |
+>|              |              |              | " option.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| expect_infea | OT_REAL      | 100000000    | Multiplier   | casadi::Ipop |
+>| sible_proble |              |              | threshold    | tInternal    |
+>| m_ytol       |              |              | for          |              |
+>|              |              |              | activating " |              |
+>|              |              |              | expect_infea |              |
+>|              |              |              | sible_proble |              |
+>|              |              |              | m" option.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| fast_des_fac | OT_REAL      | 0.100        | a parameter  | casadi::Ipop |
+>| t            |              |              | used to      | tInternal    |
+>|              |              |              | check if the |              |
+>|              |              |              | fast         |              |
+>|              |              |              | direction    |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | asthe line   |              |
+>|              |              |              | search       |              |
+>|              |              |              | direction    |              |
+>|              |              |              | (for Chen-   |              |
+>|              |              |              | Goldfarb     |              |
+>|              |              |              | line         |              |
+>|              |              |              | search).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| fast_step_co | OT_STRING    | no           | Indicates if | casadi::Ipop |
+>| mputation    |              |              | the linear   | tInternal    |
+>|              |              |              | system       |              |
+>|              |              |              | should be    |              |
+>|              |              |              | solved       |              |
+>|              |              |              | quickly.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| file_print_l | OT_INTEGER   | 5            | Verbosity    | casadi::Ipop |
+>| evel         |              |              | level for    | tInternal    |
+>|              |              |              | output file. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| filter_margi | OT_REAL      | 0.000        | Factor       | casadi::Ipop |
+>| n_fact       |              |              | determining  | tInternal    |
+>|              |              |              | width of     |              |
+>|              |              |              | margin for   |              |
+>|              |              |              | obj-constr-  |              |
+>|              |              |              | filter       |              |
+>|              |              |              | adaptive glo |              |
+>|              |              |              | balization   |              |
+>|              |              |              | strategy.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| filter_max_m | OT_REAL      | 1            | Maximum      | casadi::Ipop |
+>| argin        |              |              | width of     | tInternal    |
+>|              |              |              | margin in    |              |
+>|              |              |              | obj-constr-  |              |
+>|              |              |              | filter       |              |
+>|              |              |              | adaptive glo |              |
+>|              |              |              | balization   |              |
+>|              |              |              | strategy.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| filter_reset | OT_INTEGER   | 5            | Number of    | casadi::Ipop |
+>| _trigger     |              |              | iterations   | tInternal    |
+>|              |              |              | that trigger |              |
+>|              |              |              | the filter   |              |
+>|              |              |              | reset. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| findiff_pert | OT_REAL      | 0.000        | Size of the  | casadi::Ipop |
+>| urbation     |              |              | finite       | tInternal    |
+>|              |              |              | difference   |              |
+>|              |              |              | perturbation |              |
+>|              |              |              | for          |              |
+>|              |              |              | derivative a |              |
+>|              |              |              | pproximation |              |
+>|              |              |              | . (see IPOPT |              |
+>|              |              |              | documentatio |              |
+>|              |              |              | n)           |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| first_hessia | OT_REAL      | 0.000        | Size of      | casadi::Ipop |
+>| n_perturbati |              |              | first x-s    | tInternal    |
+>| on           |              |              | perturbation |              |
+>|              |              |              | tried. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| fixed_mu_ora | OT_STRING    | average_comp | Oracle for   | casadi::Ipop |
+>| cle          |              | l            | the barrier  | tInternal    |
+>|              |              |              | parameter    |              |
+>|              |              |              | when         |              |
+>|              |              |              | switching to |              |
+>|              |              |              | fixed mode.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| fixed_variab | OT_STRING    | make_paramet | Determines   | casadi::Ipop |
+>| le_treatment |              | er           | how fixed    | tInternal    |
+>|              |              |              | variables    |              |
+>|              |              |              | should be    |              |
+>|              |              |              | handled.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gamma_hat    | OT_REAL      | 0.040        | LIFENG       | casadi::Ipop |
+>|              |              |              | WRITES THIS. | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gamma_phi    | OT_REAL      | 0.000        | Relaxation   | casadi::Ipop |
+>|              |              |              | factor in    | tInternal    |
+>|              |              |              | the filter   |              |
+>|              |              |              | margin for   |              |
+>|              |              |              | the barrier  |              |
+>|              |              |              | function.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gamma_theta  | OT_REAL      | 0.000        | Relaxation   | casadi::Ipop |
+>|              |              |              | factor in    | tInternal    |
+>|              |              |              | the filter   |              |
+>|              |              |              | margin for   |              |
+>|              |              |              | the          |              |
+>|              |              |              | constraint   |              |
+>|              |              |              | violation.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gamma_tilde  | OT_REAL      | 4            | LIFENG       | casadi::Ipop |
+>|              |              |              | WRITES THIS. | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| gather_stats | OT_BOOLEAN   | false        | Flag to      | casadi::Func |
+>|              |              |              | indicate     | tionInternal |
+>|              |              |              | whether      |              |
+>|              |              |              | statistics   |              |
+>|              |              |              | must be      |              |
+>|              |              |              | gathered     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| grad_f       | OT_FUNCTION  | GenericType( | Function for | casadi::NLPS |
+>|              |              | )            | calculating  | olverInterna |
+>|              |              |              | the gradient | l            |
+>|              |              |              | of the       |              |
+>|              |              |              | objective    |              |
+>|              |              |              | (column, aut |              |
+>|              |              |              | ogenerated   |              |
+>|              |              |              | by default)  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| grad_lag     | OT_FUNCTION  | GenericType( | Function for | casadi::NLPS |
+>|              |              | )            | calculating  | olverInterna |
+>|              |              |              | the gradient | l            |
+>|              |              |              | of the       |              |
+>|              |              |              | Lagrangian ( |              |
+>|              |              |              | autogenerate |              |
+>|              |              |              | d by         |              |
+>|              |              |              | default)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| hess_lag     | OT_FUNCTION  | GenericType( | Function for | casadi::NLPS |
+>|              |              | )            | calculating  | olverInterna |
+>|              |              |              | the Hessian  | l            |
+>|              |              |              | of the       |              |
+>|              |              |              | Lagrangian ( |              |
+>|              |              |              | autogenerate |              |
+>|              |              |              | d by         |              |
+>|              |              |              | default)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| hessian_appr | OT_STRING    | exact        | Indicates    | casadi::Ipop |
+>| oximation    |              |              | what Hessian | tInternal    |
+>|              |              |              | information  |              |
+>|              |              |              | is to be     |              |
+>|              |              |              | used. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| hessian_appr | OT_STRING    | nonlinear-   | Indicates in | casadi::Ipop |
+>| oximation_sp |              | variables    | which        | tInternal    |
+>| ace          |              |              | subspace the |              |
+>|              |              |              | Hessian      |              |
+>|              |              |              | information  |              |
+>|              |              |              | is to be app |              |
+>|              |              |              | roximated.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| hessian_cons | OT_STRING    | no           | Indicates    | casadi::Ipop |
+>| tant         |              |              | whether the  | tInternal    |
+>|              |              |              | problem is a |              |
+>|              |              |              | quadratic    |              |
+>|              |              |              | problem (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| honor_origin | OT_STRING    | yes          | Indicates    | casadi::Ipop |
+>| al_bounds    |              |              | whether      | tInternal    |
+>|              |              |              | final points |              |
+>|              |              |              | should be    |              |
+>|              |              |              | projected    |              |
+>|              |              |              | into         |              |
+>|              |              |              | original     |              |
+>|              |              |              | bounds. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ignore_check | OT_BOOLEAN   | false        | If set to    | casadi::NLPS |
+>| _vec         |              |              | true, the    | olverInterna |
+>|              |              |              | input shape  | l            |
+>|              |              |              | of F will    |              |
+>|              |              |              | not be       |              |
+>|              |              |              | checked.     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inf_pr_outpu | OT_STRING    | original     | Determines   | casadi::Ipop |
+>| t            |              |              | what value   | tInternal    |
+>|              |              |              | is printed   |              |
+>|              |              |              | in the       |              |
+>|              |              |              | "inf_pr"     |              |
+>|              |              |              | output       |              |
+>|              |              |              | column. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| inputs_check | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>|              |              |              | exceptions   | tionInternal |
+>|              |              |              | when the     |              |
+>|              |              |              | numerical    |              |
+>|              |              |              | values of    |              |
+>|              |              |              | the inputs   |              |
+>|              |              |              | don't make   |              |
+>|              |              |              | sense        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| iteration_ca | OT_CALLBACK  | GenericType( | A function   | casadi::NLPS |
+>| llback       |              | )            | that will be | olverInterna |
+>|              |              |              | called at    | l            |
+>|              |              |              | each         |              |
+>|              |              |              | iteration    |              |
+>|              |              |              | with the     |              |
+>|              |              |              | solver as    |              |
+>|              |              |              | input. Check |              |
+>|              |              |              | documentatio |              |
+>|              |              |              | n of         |              |
+>|              |              |              | Callback .   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| iteration_ca | OT_BOOLEAN   | false        | If set to    | casadi::NLPS |
+>| llback_ignor |              |              | true, errors | olverInterna |
+>| e_errors     |              |              | thrown by it | l            |
+>|              |              |              | eration_call |              |
+>|              |              |              | back will be |              |
+>|              |              |              | ignored.     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| iteration_ca | OT_INTEGER   | 1            | Only call    | casadi::NLPS |
+>| llback_step  |              |              | the callback | olverInterna |
+>|              |              |              | function     | l            |
+>|              |              |              | every few    |              |
+>|              |              |              | iterations.  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| jac_c_consta | OT_STRING    | no           | Indicates    | casadi::Ipop |
+>| nt           |              |              | whether all  | tInternal    |
+>|              |              |              | equality     |              |
+>|              |              |              | constraints  |              |
+>|              |              |              | are linear   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| jac_d_consta | OT_STRING    | no           | Indicates    | casadi::Ipop |
+>| nt           |              |              | whether all  | tInternal    |
+>|              |              |              | inequality   |              |
+>|              |              |              | constraints  |              |
+>|              |              |              | are linear   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| jac_f        | OT_FUNCTION  | GenericType( | Function for | casadi::NLPS |
+>|              |              | )            | calculating  | olverInterna |
+>|              |              |              | the jacobian | l            |
+>|              |              |              | of the       |              |
+>|              |              |              | objective    |              |
+>|              |              |              | (sparse row, |              |
+>|              |              |              | autogenerate |              |
+>|              |              |              | d by         |              |
+>|              |              |              | default)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| jac_g        | OT_FUNCTION  | GenericType( | Function for | casadi::NLPS |
+>|              |              | )            | calculating  | olverInterna |
+>|              |              |              | the Jacobian | l            |
+>|              |              |              | of the       |              |
+>|              |              |              | constraints  |              |
+>|              |              |              | (autogenerat |              |
+>|              |              |              | ed by        |              |
+>|              |              |              | default)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| jacobian_app | OT_STRING    | exact        | Specifies    | casadi::Ipop |
+>| roximation   |              |              | technique to | tInternal    |
+>|              |              |              | compute      |              |
+>|              |              |              | constraint   |              |
+>|              |              |              | Jacobian     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| jacobian_reg | OT_REAL      | 0.250        | Exponent for | casadi::Ipop |
+>| ularization_ |              |              | mu in the re | tInternal    |
+>| exponent     |              |              | gularization |              |
+>|              |              |              | for rank-    |              |
+>|              |              |              | deficient    |              |
+>|              |              |              | constraint   |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| jacobian_reg | OT_REAL      | 0.000        | Size of the  | casadi::Ipop |
+>| ularization_ |              |              | regularizati | tInternal    |
+>| value        |              |              | on for rank- |              |
+>|              |              |              | deficient    |              |
+>|              |              |              | constraint   |              |
+>|              |              |              | Jacobians.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| kappa_d      | OT_REAL      | 0.000        | Weight for   | casadi::Ipop |
+>|              |              |              | linear       | tInternal    |
+>|              |              |              | damping term |              |
+>|              |              |              | (to handle   |              |
+>|              |              |              | one-sided    |              |
+>|              |              |              | bounds).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| kappa_sigma  | OT_REAL      | 1.000e+10    | Factor       | casadi::Ipop |
+>|              |              |              | limiting the | tInternal    |
+>|              |              |              | deviation of |              |
+>|              |              |              | dual         |              |
+>|              |              |              | variables    |              |
+>|              |              |              | from primal  |              |
+>|              |              |              | estimates.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| kappa_soc    | OT_REAL      | 0.990        | Factor in    | casadi::Ipop |
+>|              |              |              | the          | tInternal    |
+>|              |              |              | sufficient   |              |
+>|              |              |              | reduction    |              |
+>|              |              |              | rule for     |              |
+>|              |              |              | second order |              |
+>|              |              |              | correction.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| kappa_x_dis  | OT_REAL      | 100          | a parameter  | casadi::Ipop |
+>|              |              |              | used to      | tInternal    |
+>|              |              |              | check if the |              |
+>|              |              |              | fast         |              |
+>|              |              |              | direction    |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | asthe line   |              |
+>|              |              |              | search       |              |
+>|              |              |              | direction    |              |
+>|              |              |              | (for Chen-   |              |
+>|              |              |              | Goldfarb     |              |
+>|              |              |              | line         |              |
+>|              |              |              | search).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| kappa_y_dis  | OT_REAL      | 10000        | a parameter  | casadi::Ipop |
+>|              |              |              | used to      | tInternal    |
+>|              |              |              | check if the |              |
+>|              |              |              | fast         |              |
+>|              |              |              | direction    |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | asthe line   |              |
+>|              |              |              | search       |              |
+>|              |              |              | direction    |              |
+>|              |              |              | (for Chen-   |              |
+>|              |              |              | Goldfarb     |              |
+>|              |              |              | line         |              |
+>|              |              |              | search).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| least_square | OT_STRING    | no           | Least square | casadi::Ipop |
+>| _init_duals  |              |              | initializati | tInternal    |
+>|              |              |              | on of all    |              |
+>|              |              |              | dual         |              |
+>|              |              |              | variables    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| least_square | OT_STRING    | no           | Least square | casadi::Ipop |
+>| _init_primal |              |              | initializati | tInternal    |
+>|              |              |              | on of the    |              |
+>|              |              |              | primal       |              |
+>|              |              |              | variables    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| limited_memo | OT_STRING    | sherman-     | Strategy for | casadi::Ipop |
+>| ry_aug_solve |              | morrison     | solving the  | tInternal    |
+>| r            |              |              | augmented    |              |
+>|              |              |              | system for   |              |
+>|              |              |              | low-rank     |              |
+>|              |              |              | Hessian.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| limited_memo | OT_REAL      | 1            | Value for B0 | casadi::Ipop |
+>| ry_init_val  |              |              | in low-rank  | tInternal    |
+>|              |              |              | update. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| limited_memo | OT_REAL      | 100000000    | Upper bound  | casadi::Ipop |
+>| ry_init_val_ |              |              | on value for | tInternal    |
+>| max          |              |              | B0 in low-   |              |
+>|              |              |              | rank update. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| limited_memo | OT_REAL      | 0.000        | Lower bound  | casadi::Ipop |
+>| ry_init_val_ |              |              | on value for | tInternal    |
+>| min          |              |              | B0 in low-   |              |
+>|              |              |              | rank update. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| limited_memo | OT_STRING    | scalar1      | Initializati | casadi::Ipop |
+>| ry_initializ |              |              | on strategy  | tInternal    |
+>| ation        |              |              | for the      |              |
+>|              |              |              | limited      |              |
+>|              |              |              | memory       |              |
+>|              |              |              | quasi-Newton |              |
+>|              |              |              | approximatio |              |
+>|              |              |              | n. (see      |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| limited_memo | OT_INTEGER   | 6            | Maximum size | casadi::Ipop |
+>| ry_max_histo |              |              | of the       | tInternal    |
+>| ry           |              |              | history for  |              |
+>|              |              |              | the limited  |              |
+>|              |              |              | quasi-Newton |              |
+>|              |              |              | Hessian appr |              |
+>|              |              |              | oximation.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| limited_memo | OT_INTEGER   | 2            | Threshold    | casadi::Ipop |
+>| ry_max_skipp |              |              | for          | tInternal    |
+>| ing          |              |              | successive   |              |
+>|              |              |              | iterations   |              |
+>|              |              |              | where update |              |
+>|              |              |              | is skipped.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| limited_memo | OT_STRING    | no           | Determines   | casadi::Ipop |
+>| ry_special_f |              |              | if the       | tInternal    |
+>| or_resto     |              |              | quasi-Newton |              |
+>|              |              |              | updates      |              |
+>|              |              |              | should be    |              |
+>|              |              |              | special      |              |
+>|              |              |              | during the   |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| limited_memo | OT_STRING    | bfgs         | Quasi-Newton | casadi::Ipop |
+>| ry_update_ty |              |              | update       | tInternal    |
+>| pe           |              |              | formula for  |              |
+>|              |              |              | the limited  |              |
+>|              |              |              | memory appro |              |
+>|              |              |              | ximation.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| line_search_ | OT_STRING    | filter       | Globalizatio | casadi::Ipop |
+>| method       |              |              | n method     | tInternal    |
+>|              |              |              | used in      |              |
+>|              |              |              | backtracking |              |
+>|              |              |              | line search  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| linear_scali | OT_STRING    | yes          | Flag         | casadi::Ipop |
+>| ng_on_demand |              |              | indicating   | tInternal    |
+>|              |              |              | that linear  |              |
+>|              |              |              | scaling is   |              |
+>|              |              |              | only done if |              |
+>|              |              |              | it seems     |              |
+>|              |              |              | required.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| linear_solve | OT_STRING    | mumps        | Linear       | casadi::Ipop |
+>| r            |              |              | solver used  | tInternal    |
+>|              |              |              | for step com |              |
+>|              |              |              | putations.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| linear_syste | OT_STRING    | none         | Method for   | casadi::Ipop |
+>| m_scaling    |              |              | scaling the  | tInternal    |
+>|              |              |              | linear       |              |
+>|              |              |              | system. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma27_ignore_ | OT_STRING    | no           | Enables      | casadi::Ipop |
+>| singularity  |              |              | MA27's       | tInternal    |
+>|              |              |              | ability to   |              |
+>|              |              |              | solve a      |              |
+>|              |              |              | linear       |              |
+>|              |              |              | system even  |              |
+>|              |              |              | if the       |              |
+>|              |              |              | matrix is    |              |
+>|              |              |              | singular.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma27_la_init | OT_REAL      | 5            | Real         | casadi::Ipop |
+>| _factor      |              |              | workspace    | tInternal    |
+>|              |              |              | memory for   |              |
+>|              |              |              | MA27. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma27_liw_ini | OT_REAL      | 5            | Integer      | casadi::Ipop |
+>| t_factor     |              |              | workspace    | tInternal    |
+>|              |              |              | memory for   |              |
+>|              |              |              | MA27. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma27_meminc_ | OT_REAL      | 2            | Increment    | casadi::Ipop |
+>| factor       |              |              | factor for   | tInternal    |
+>|              |              |              | workspace    |              |
+>|              |              |              | size for     |              |
+>|              |              |              | MA27. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma27_pivtol  | OT_REAL      | 0.000        | Pivot        | casadi::Ipop |
+>|              |              |              | tolerance    | tInternal    |
+>|              |              |              | for the      |              |
+>|              |              |              | linear       |              |
+>|              |              |              | solver MA27. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma27_pivtolm | OT_REAL      | 0.000        | Maximum      | casadi::Ipop |
+>| ax           |              |              | pivot        | tInternal    |
+>|              |              |              | tolerance    |              |
+>|              |              |              | for the      |              |
+>|              |              |              | linear       |              |
+>|              |              |              | solver MA27. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma27_skip_in | OT_STRING    | no           | Always       | casadi::Ipop |
+>| ertia_check  |              |              | pretend      | tInternal    |
+>|              |              |              | inertia is   |              |
+>|              |              |              | correct.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma28_pivtol  | OT_REAL      | 0.010        | Pivot        | casadi::Ipop |
+>|              |              |              | tolerance    | tInternal    |
+>|              |              |              | for linear   |              |
+>|              |              |              | solver MA28. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma57_automat | OT_STRING    | no           | Controls     | casadi::Ipop |
+>| ic_scaling   |              |              | MA57         | tInternal    |
+>|              |              |              | automatic    |              |
+>|              |              |              | scaling (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma57_block_s | OT_INTEGER   | 16           | Controls     | casadi::Ipop |
+>| ize          |              |              | block size   | tInternal    |
+>|              |              |              | used by      |              |
+>|              |              |              | Level 3 BLAS |              |
+>|              |              |              | in MA57BD    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma57_node_am | OT_INTEGER   | 16           | Node         | casadi::Ipop |
+>| algamation   |              |              | amalgamation | tInternal    |
+>|              |              |              | parameter    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma57_pivot_o | OT_INTEGER   | 5            | Controls     | casadi::Ipop |
+>| rder         |              |              | pivot order  | tInternal    |
+>|              |              |              | in MA57 (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma57_pivtol  | OT_REAL      | 0.000        | Pivot        | casadi::Ipop |
+>|              |              |              | tolerance    | tInternal    |
+>|              |              |              | for the      |              |
+>|              |              |              | linear       |              |
+>|              |              |              | solver MA57. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma57_pivtolm | OT_REAL      | 0.000        | Maximum      | casadi::Ipop |
+>| ax           |              |              | pivot        | tInternal    |
+>|              |              |              | tolerance    |              |
+>|              |              |              | for the      |              |
+>|              |              |              | linear       |              |
+>|              |              |              | solver MA57. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma57_pre_all | OT_REAL      | 1.050        | Safety       | casadi::Ipop |
+>| oc           |              |              | factor for   | tInternal    |
+>|              |              |              | work space   |              |
+>|              |              |              | memory       |              |
+>|              |              |              | allocation   |              |
+>|              |              |              | for the      |              |
+>|              |              |              | linear       |              |
+>|              |              |              | solver MA57. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma57_small_p | OT_INTEGER   | 0            | If set to 1, | casadi::Ipop |
+>| ivot_flag    |              |              | then when    | tInternal    |
+>|              |              |              | small        |              |
+>|              |              |              | entries      |              |
+>|              |              |              | defined by   |              |
+>|              |              |              | CNTL(2) are  |              |
+>|              |              |              | detected     |              |
+>|              |              |              | they are     |              |
+>|              |              |              | removed and  |              |
+>|              |              |              | the correspo |              |
+>|              |              |              | nding pivots |              |
+>|              |              |              | placed at    |              |
+>|              |              |              | the end of   |              |
+>|              |              |              | the factoriz |              |
+>|              |              |              | ation. This  |              |
+>|              |              |              | can be       |              |
+>|              |              |              | particularly |              |
+>|              |              |              | efficient if |              |
+>|              |              |              | the matrix   |              |
+>|              |              |              | is highly    |              |
+>|              |              |              | rank         |              |
+>|              |              |              | deficient.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma77_buffer_ | OT_INTEGER   | 4096         | Number of    | casadi::Ipop |
+>| lpage        |              |              | scalars per  | tInternal    |
+>|              |              |              | MA77 buffer  |              |
+>|              |              |              | page (see    |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma77_buffer_ | OT_INTEGER   | 1600         | Number of    | casadi::Ipop |
+>| npage        |              |              | pages that   | tInternal    |
+>|              |              |              | make up MA77 |              |
+>|              |              |              | buffer (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma77_file_si | OT_INTEGER   | 2097152      | Target size  | casadi::Ipop |
+>| ze           |              |              | of each      | tInternal    |
+>|              |              |              | temporary    |              |
+>|              |              |              | file for     |              |
+>|              |              |              | MA77,        |              |
+>|              |              |              | scalars per  |              |
+>|              |              |              | type (see    |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma77_maxstor | OT_INTEGER   | 0            | Maximum      | casadi::Ipop |
+>| e            |              |              | storage size | tInternal    |
+>|              |              |              | for MA77 in- |              |
+>|              |              |              | core mode    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma77_nemin   | OT_INTEGER   | 8            | Node         | casadi::Ipop |
+>|              |              |              | Amalgamation | tInternal    |
+>|              |              |              | parameter    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma77_order   | OT_STRING    | amd          | Controls     | casadi::Ipop |
+>|              |              |              | type of      | tInternal    |
+>|              |              |              | ordering     |              |
+>|              |              |              | used by      |              |
+>|              |              |              | HSL_MA77     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma77_print_l | OT_INTEGER   | -1           | Debug        | casadi::Ipop |
+>| evel         |              |              | printing     | tInternal    |
+>|              |              |              | level for    |              |
+>|              |              |              | the linear   |              |
+>|              |              |              | solver MA77  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma77_small   | OT_REAL      | 0.000        | Zero Pivot   | casadi::Ipop |
+>|              |              |              | Threshold    | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma77_static  | OT_REAL      | 0            | Static       | casadi::Ipop |
+>|              |              |              | Pivoting     | tInternal    |
+>|              |              |              | Threshold    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma77_u       | OT_REAL      | 0.000        | Pivoting     | casadi::Ipop |
+>|              |              |              | Threshold    | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma77_umax    | OT_REAL      | 0.000        | Maximum      | casadi::Ipop |
+>|              |              |              | Pivoting     | tInternal    |
+>|              |              |              | Threshold    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma86_nemin   | OT_INTEGER   | 32           | Node         | casadi::Ipop |
+>|              |              |              | Amalgamation | tInternal    |
+>|              |              |              | parameter    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma86_order   | OT_STRING    | amd          | Controls     | casadi::Ipop |
+>|              |              |              | type of      | tInternal    |
+>|              |              |              | ordering     |              |
+>|              |              |              | used by      |              |
+>|              |              |              | HSL_MA86     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma86_print_l | OT_INTEGER   | -1           | Debug        | casadi::Ipop |
+>| evel         |              |              | printing     | tInternal    |
+>|              |              |              | level for    |              |
+>|              |              |              | the linear   |              |
+>|              |              |              | solver MA86  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma86_scaling | OT_STRING    | mc64         | Controls     | casadi::Ipop |
+>|              |              |              | scaling of   | tInternal    |
+>|              |              |              | matrix (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma86_small   | OT_REAL      | 0.000        | Zero Pivot   | casadi::Ipop |
+>|              |              |              | Threshold    | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma86_static  | OT_REAL      | 0            | Static       | casadi::Ipop |
+>|              |              |              | Pivoting     | tInternal    |
+>|              |              |              | Threshold    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma86_u       | OT_REAL      | 0.000        | Pivoting     | casadi::Ipop |
+>|              |              |              | Threshold    | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma86_umax    | OT_REAL      | 0.000        | Maximum      | casadi::Ipop |
+>|              |              |              | Pivoting     | tInternal    |
+>|              |              |              | Threshold    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_nemin   | OT_INTEGER   | 8            | Node         | casadi::Ipop |
+>|              |              |              | Amalgamation | tInternal    |
+>|              |              |              | parameter    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_order   | OT_STRING    | auto         | Controls     | casadi::Ipop |
+>|              |              |              | type of      | tInternal    |
+>|              |              |              | ordering     |              |
+>|              |              |              | used by      |              |
+>|              |              |              | HSL_MA97     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_print_l | OT_INTEGER   | 0            | Debug        | casadi::Ipop |
+>| evel         |              |              | printing     | tInternal    |
+>|              |              |              | level for    |              |
+>|              |              |              | the linear   |              |
+>|              |              |              | solver MA97  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_scaling | OT_STRING    | dynamic      | Specifies    | casadi::Ipop |
+>|              |              |              | strategy for | tInternal    |
+>|              |              |              | scaling in   |              |
+>|              |              |              | HSL_MA97     |              |
+>|              |              |              | linear       |              |
+>|              |              |              | solver (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_scaling | OT_STRING    | mc64         | First        | casadi::Ipop |
+>| 1            |              |              | scaling.     | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_scaling | OT_STRING    | mc64         | Second       | casadi::Ipop |
+>| 2            |              |              | scaling.     | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_scaling | OT_STRING    | mc64         | Third        | casadi::Ipop |
+>| 3            |              |              | scaling.     | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_small   | OT_REAL      | 0.000        | Zero Pivot   | casadi::Ipop |
+>|              |              |              | Threshold    | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_solve_b | OT_STRING    | no           | Controls if  | casadi::Ipop |
+>| las3         |              |              | blas2 or     | tInternal    |
+>|              |              |              | blas3        |              |
+>|              |              |              | routines are |              |
+>|              |              |              | used for     |              |
+>|              |              |              | solve (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_switch1 | OT_STRING    | od_hd_reuse  | First        | casadi::Ipop |
+>|              |              |              | switch,      | tInternal    |
+>|              |              |              | determine    |              |
+>|              |              |              | when ma97_sc |              |
+>|              |              |              | aling1 is    |              |
+>|              |              |              | enabled.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_switch2 | OT_STRING    | never        | Second       | casadi::Ipop |
+>|              |              |              | switch,      | tInternal    |
+>|              |              |              | determine    |              |
+>|              |              |              | when ma97_sc |              |
+>|              |              |              | aling2 is    |              |
+>|              |              |              | enabled.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_switch3 | OT_STRING    | never        | Third        | casadi::Ipop |
+>|              |              |              | switch,      | tInternal    |
+>|              |              |              | determine    |              |
+>|              |              |              | when ma97_sc |              |
+>|              |              |              | aling3 is    |              |
+>|              |              |              | enabled.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_u       | OT_REAL      | 0.000        | Pivoting     | casadi::Ipop |
+>|              |              |              | Threshold    | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| ma97_umax    | OT_REAL      | 0.000        | Maximum      | casadi::Ipop |
+>|              |              |              | Pivoting     | tInternal    |
+>|              |              |              | Threshold    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| magic_steps  | OT_STRING    | no           | Enables      | casadi::Ipop |
+>|              |              |              | magic steps. | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| max_cpu_time | OT_REAL      | 1000000      | Maximum      | casadi::Ipop |
+>|              |              |              | number of    | tInternal    |
+>|              |              |              | CPU seconds. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| max_filter_r | OT_INTEGER   | 5            | Maximal      | casadi::Ipop |
+>| esets        |              |              | allowed      | tInternal    |
+>|              |              |              | number of    |              |
+>|              |              |              | filter       |              |
+>|              |              |              | resets (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| max_hessian_ | OT_REAL      | 1.000e+20    | Maximum      | casadi::Ipop |
+>| perturbation |              |              | value of reg | tInternal    |
+>|              |              |              | ularization  |              |
+>|              |              |              | parameter    |              |
+>|              |              |              | for handling |              |
+>|              |              |              | negative     |              |
+>|              |              |              | curvature.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| max_iter     | OT_INTEGER   | 3000         | Maximum      | casadi::Ipop |
+>|              |              |              | number of    | tInternal    |
+>|              |              |              | iterations.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| max_refineme | OT_INTEGER   | 10           | Maximum      | casadi::Ipop |
+>| nt_steps     |              |              | number of    | tInternal    |
+>|              |              |              | iterative    |              |
+>|              |              |              | refinement   |              |
+>|              |              |              | steps per    |              |
+>|              |              |              | linear       |              |
+>|              |              |              | system       |              |
+>|              |              |              | solve. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| max_resto_it | OT_INTEGER   | 3000000      | Maximum      | casadi::Ipop |
+>| er           |              |              | number of    | tInternal    |
+>|              |              |              | successive   |              |
+>|              |              |              | iterations   |              |
+>|              |              |              | in           |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| max_soc      | OT_INTEGER   | 4            | Maximum      | casadi::Ipop |
+>|              |              |              | number of    | tInternal    |
+>|              |              |              | second order |              |
+>|              |              |              | correction   |              |
+>|              |              |              | trial steps  |              |
+>|              |              |              | at each      |              |
+>|              |              |              | iteration.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| max_soft_res | OT_INTEGER   | 10           | Maximum      | casadi::Ipop |
+>| to_iters     |              |              | number of    | tInternal    |
+>|              |              |              | iterations   |              |
+>|              |              |              | performed    |              |
+>|              |              |              | successively |              |
+>|              |              |              | in soft      |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mehrotra_alg | OT_STRING    | no           | Indicates if | casadi::Ipop |
+>| orithm       |              |              | we want to   | tInternal    |
+>|              |              |              | do           |              |
+>|              |              |              | Mehrotra's   |              |
+>|              |              |              | algorithm.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| min_alpha_pr | OT_REAL      | 0.000        | LIFENG       | casadi::Ipop |
+>| imal         |              |              | WRITES THIS. | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| min_hessian_ | OT_REAL      | 0.000        | Smallest     | casadi::Ipop |
+>| perturbation |              |              | perturbation | tInternal    |
+>|              |              |              | of the       |              |
+>|              |              |              | Hessian      |              |
+>|              |              |              | block. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| min_refineme | OT_INTEGER   | 1            | Minimum      | casadi::Ipop |
+>| nt_steps     |              |              | number of    | tInternal    |
+>|              |              |              | iterative    |              |
+>|              |              |              | refinement   |              |
+>|              |              |              | steps per    |              |
+>|              |              |              | linear       |              |
+>|              |              |              | system       |              |
+>|              |              |              | solve. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| monitor      | OT_STRINGVEC | GenericType( | Monitors to  | casadi::Func |
+>|              | TOR          | )            | be activated | tionInternal |
+>|              |              |              | (inputs|outp | casadi::Ipop |
+>|              |              |              | uts)  (eval_ | tInternal    |
+>|              |              |              | f|eval_g|eva |              |
+>|              |              |              | l_jac_g|eval |              |
+>|              |              |              | _grad_f|eval |              |
+>|              |              |              | _h)          |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mu_allow_fas | OT_STRING    | yes          | Allow        | casadi::Ipop |
+>| t_monotone_d |              |              | skipping of  | tInternal    |
+>| ecrease      |              |              | barrier      |              |
+>|              |              |              | problem if   |              |
+>|              |              |              | barrier test |              |
+>|              |              |              | is already   |              |
+>|              |              |              | met. (see    |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mu_init      | OT_REAL      | 0.100        | Initial      | casadi::Ipop |
+>|              |              |              | value for    | tInternal    |
+>|              |              |              | the barrier  |              |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mu_linear_de | OT_REAL      | 0.200        | Determines   | casadi::Ipop |
+>| crease_facto |              |              | linear       | tInternal    |
+>| r            |              |              | decrease     |              |
+>|              |              |              | rate of      |              |
+>|              |              |              | barrier      |              |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mu_max       | OT_REAL      | 100000       | Maximum      | casadi::Ipop |
+>|              |              |              | value for    | tInternal    |
+>|              |              |              | barrier      |              |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mu_max_fact  | OT_REAL      | 1000         | Factor for i | casadi::Ipop |
+>|              |              |              | nitializatio | tInternal    |
+>|              |              |              | n of maximum |              |
+>|              |              |              | value for    |              |
+>|              |              |              | barrier      |              |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mu_min       | OT_REAL      | 0.000        | Minimum      | casadi::Ipop |
+>|              |              |              | value for    | tInternal    |
+>|              |              |              | barrier      |              |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mu_oracle    | OT_STRING    | quality-     | Oracle for a | casadi::Ipop |
+>|              |              | function     | new barrier  | tInternal    |
+>|              |              |              | parameter in |              |
+>|              |              |              | the adaptive |              |
+>|              |              |              | strategy.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mu_strategy  | OT_STRING    | monotone     | Update       | casadi::Ipop |
+>|              |              |              | strategy for | tInternal    |
+>|              |              |              | barrier      |              |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mu_superline | OT_REAL      | 1.500        | Determines   | casadi::Ipop |
+>| ar_decrease_ |              |              | superlinear  | tInternal    |
+>| power        |              |              | decrease     |              |
+>|              |              |              | rate of      |              |
+>|              |              |              | barrier      |              |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mu_target    | OT_REAL      | 0            | Desired      | casadi::Ipop |
+>|              |              |              | value of com | tInternal    |
+>|              |              |              | plementarity |              |
+>|              |              |              | . (see IPOPT |              |
+>|              |              |              | documentatio |              |
+>|              |              |              | n)           |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mult_diverg_ | OT_REAL      | 0.000        | tolerance    | casadi::Ipop |
+>| feasibility_ |              |              | for deciding | tInternal    |
+>| tol          |              |              | if the       |              |
+>|              |              |              | multipliers  |              |
+>|              |              |              | are          |              |
+>|              |              |              | diverging    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mult_diverg_ | OT_REAL      | 100000000    | tolerance    | casadi::Ipop |
+>| y_tol        |              |              | for deciding | tInternal    |
+>|              |              |              | if the       |              |
+>|              |              |              | multipliers  |              |
+>|              |              |              | are          |              |
+>|              |              |              | diverging    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mumps_dep_to | OT_REAL      | 0            | Pivot        | casadi::Ipop |
+>| l            |              |              | threshold    | tInternal    |
+>|              |              |              | for          |              |
+>|              |              |              | detection of |              |
+>|              |              |              | linearly     |              |
+>|              |              |              | dependent    |              |
+>|              |              |              | constraints  |              |
+>|              |              |              | in MUMPS.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mumps_mem_pe | OT_INTEGER   | 1000         | Percentage   | casadi::Ipop |
+>| rcent        |              |              | increase in  | tInternal    |
+>|              |              |              | the          |              |
+>|              |              |              | estimated    |              |
+>|              |              |              | working      |              |
+>|              |              |              | space for    |              |
+>|              |              |              | MUMPS. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mumps_permut | OT_INTEGER   | 7            | Controls     | casadi::Ipop |
+>| ing_scaling  |              |              | permuting    | tInternal    |
+>|              |              |              | and scaling  |              |
+>|              |              |              | in MUMPS     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mumps_pivot_ | OT_INTEGER   | 7            | Controls     | casadi::Ipop |
+>| order        |              |              | pivot order  | tInternal    |
+>|              |              |              | in MUMPS     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mumps_pivtol | OT_REAL      | 0.000        | Pivot        | casadi::Ipop |
+>|              |              |              | tolerance    | tInternal    |
+>|              |              |              | for the      |              |
+>|              |              |              | linear       |              |
+>|              |              |              | solver       |              |
+>|              |              |              | MUMPS. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mumps_pivtol | OT_REAL      | 0.100        | Maximum      | casadi::Ipop |
+>| max          |              |              | pivot        | tInternal    |
+>|              |              |              | tolerance    |              |
+>|              |              |              | for the      |              |
+>|              |              |              | linear       |              |
+>|              |              |              | solver       |              |
+>|              |              |              | MUMPS. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| mumps_scalin | OT_INTEGER   | 77           | Controls     | casadi::Ipop |
+>| g            |              |              | scaling in   | tInternal    |
+>|              |              |              | MUMPS (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| name         | OT_STRING    | "unnamed_sha | name of the  | casadi::Opti |
+>|              |              | red_object"  | object       | onsFunctiona |
+>|              |              |              |              | lityNode     |
+>+--------------+--------------+--------------+--------------+--------------+
+>| neg_curv_tes | OT_REAL      | 0            | Tolerance    | casadi::Ipop |
+>| t_tol        |              |              | for          | tInternal    |
+>|              |              |              | heuristic to |              |
+>|              |              |              | ignore wrong |              |
+>|              |              |              | inertia.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| never_use_fa | OT_STRING    | no           | Toggle to    | casadi::Ipop |
+>| ct_cgpen_dir |              |              | switch off   | tInternal    |
+>| ection       |              |              | the fast     |              |
+>|              |              |              | Chen-        |              |
+>|              |              |              | Goldfarb     |              |
+>|              |              |              | direction    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| never_use_pi | OT_STRING    | no           | Toggle to    | casadi::Ipop |
+>| ecewise_pena |              |              | switch off   | tInternal    |
+>| lty_ls       |              |              | the          |              |
+>|              |              |              | piecewise    |              |
+>|              |              |              | penalty      |              |
+>|              |              |              | method (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| nlp_lower_bo | OT_REAL      | -1.000e+19   | any bound    | casadi::Ipop |
+>| und_inf      |              |              | less or      | tInternal    |
+>|              |              |              | equal this   |              |
+>|              |              |              | value will   |              |
+>|              |              |              | be           |              |
+>|              |              |              | considered   |              |
+>|              |              |              | -inf (i.e.   |              |
+>|              |              |              | not lower    |              |
+>|              |              |              | bounded).    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| nlp_scaling_ | OT_REAL      | 0            | Target value | casadi::Ipop |
+>| constr_targe |              |              | for          | tInternal    |
+>| t_gradient   |              |              | constraint   |              |
+>|              |              |              | function     |              |
+>|              |              |              | gradient     |              |
+>|              |              |              | size. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| nlp_scaling_ | OT_REAL      | 100          | Maximum      | casadi::Ipop |
+>| max_gradient |              |              | gradient     | tInternal    |
+>|              |              |              | after NLP    |              |
+>|              |              |              | scaling.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| nlp_scaling_ | OT_STRING    | gradient-    | Select the   | casadi::Ipop |
+>| method       |              | based        | technique    | tInternal    |
+>|              |              |              | used for     |              |
+>|              |              |              | scaling the  |              |
+>|              |              |              | NLP. (see    |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| nlp_scaling_ | OT_REAL      | 0.000        | Minimum      | casadi::Ipop |
+>| min_value    |              |              | value of     | tInternal    |
+>|              |              |              | gradient-    |              |
+>|              |              |              | based        |              |
+>|              |              |              | scaling      |              |
+>|              |              |              | values. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| nlp_scaling_ | OT_REAL      | 0            | Target value | casadi::Ipop |
+>| obj_target_g |              |              | for          | tInternal    |
+>| radient      |              |              | objective    |              |
+>|              |              |              | function     |              |
+>|              |              |              | gradient     |              |
+>|              |              |              | size. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| nlp_upper_bo | OT_REAL      | 1.000e+19    | any bound    | casadi::Ipop |
+>| und_inf      |              |              | greater or   | tInternal    |
+>|              |              |              | this value   |              |
+>|              |              |              | will be      |              |
+>|              |              |              | considered   |              |
+>|              |              |              | +inf (i.e.   |              |
+>|              |              |              | not upper    |              |
+>|              |              |              | bounded).    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| nu_inc       | OT_REAL      | 0.000        | Increment of | casadi::Ipop |
+>|              |              |              | the penalty  | tInternal    |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| nu_init      | OT_REAL      | 0.000        | Initial      | casadi::Ipop |
+>|              |              |              | value of the | tInternal    |
+>|              |              |              | penalty      |              |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| num_linear_v | OT_INTEGER   | 0            | Number of    | casadi::Ipop |
+>| ariables     |              |              | linear       | tInternal    |
+>|              |              |              | variables    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| obj_max_inc  | OT_REAL      | 5            | Determines   | casadi::Ipop |
+>|              |              |              | the upper    | tInternal    |
+>|              |              |              | bound on the |              |
+>|              |              |              | acceptable   |              |
+>|              |              |              | increase of  |              |
+>|              |              |              | barrier      |              |
+>|              |              |              | objective    |              |
+>|              |              |              | function.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| obj_scaling_ | OT_REAL      | 1            | Scaling      | casadi::Ipop |
+>| factor       |              |              | factor for   | tInternal    |
+>|              |              |              | the          |              |
+>|              |              |              | objective    |              |
+>|              |              |              | function.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| option_file_ | OT_STRING    | ipopt.opt    | File name of | casadi::Ipop |
+>| name         |              |              | options      | tInternal    |
+>|              |              |              | file. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| output_file  | OT_STRING    |              | File name of | casadi::Ipop |
+>|              |              |              | desired      | tInternal    |
+>|              |              |              | output file  |              |
+>|              |              |              | (leave unset |              |
+>|              |              |              | for no file  |              |
+>|              |              |              | output).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_iter | OT_INTEGER   | 5000         | Maximum Size | casadi::Ipop |
+>| _coarse_size |              |              | of Coarse    | tInternal    |
+>|              |              |              | Grid Matrix  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_iter | OT_REAL      | 0.500        | dropping     | casadi::Ipop |
+>| _dropping_fa |              |              | value for    | tInternal    |
+>| ctor         |              |              | incomplete   |              |
+>|              |              |              | factor (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_iter | OT_REAL      | 0.100        | dropping     | casadi::Ipop |
+>| _dropping_sc |              |              | value for    | tInternal    |
+>| hur          |              |              | sparsify     |              |
+>|              |              |              | schur        |              |
+>|              |              |              | complement   |              |
+>|              |              |              | factor (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_iter | OT_REAL      | 5000000      | (see IPOPT d | casadi::Ipop |
+>| _inverse_nor |              |              | ocumentation | tInternal    |
+>| m_factor     |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_iter | OT_INTEGER   | 10           | Maximum Size | casadi::Ipop |
+>| _max_levels  |              |              | of Grid      | tInternal    |
+>|              |              |              | Levels (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_iter | OT_INTEGER   | 10000000     | max fill for | casadi::Ipop |
+>| _max_row_fil |              |              | each row     | tInternal    |
+>| l            |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_iter | OT_REAL      | 0.000        | Relative     | casadi::Ipop |
+>| _relative_to |              |              | Residual     | tInternal    |
+>| l            |              |              | Convergence  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_iter | OT_STRING    | no           | Switch on    | casadi::Ipop |
+>| ative        |              |              | iterative    | tInternal    |
+>|              |              |              | solver in    |              |
+>|              |              |              | Pardiso      |              |
+>|              |              |              | library (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_matc | OT_STRING    | complete+2x2 | Matching     | casadi::Ipop |
+>| hing_strateg |              |              | strategy to  | tInternal    |
+>| y            |              |              | be used by   |              |
+>|              |              |              | Pardiso (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_max_ | OT_INTEGER   | 4            | Maximal      | casadi::Ipop |
+>| droptol_corr |              |              | number of    | tInternal    |
+>| ections      |              |              | decreases of |              |
+>|              |              |              | drop         |              |
+>|              |              |              | tolerance    |              |
+>|              |              |              | during one   |              |
+>|              |              |              | solve. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_max_ | OT_INTEGER   | 500          | Maximum      | casadi::Ipop |
+>| iter         |              |              | number of    | tInternal    |
+>|              |              |              | Krylov-      |              |
+>|              |              |              | Subspace     |              |
+>|              |              |              | Iteration    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_msgl | OT_INTEGER   | 0            | Pardiso      | casadi::Ipop |
+>| vl           |              |              | message      | tInternal    |
+>|              |              |              | level (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_out_ | OT_INTEGER   | 0            | Enables out- | casadi::Ipop |
+>| of_core_powe |              |              | of-core      | tInternal    |
+>| r            |              |              | variant of   |              |
+>|              |              |              | Pardiso (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_redo | OT_STRING    | no           | Toggle for   | casadi::Ipop |
+>| _symbolic_fa |              |              | handling     | tInternal    |
+>| ct_only_if_i |              |              | case when    |              |
+>| nertia_wrong |              |              | elements     |              |
+>|              |              |              | were         |              |
+>|              |              |              | perturbed by |              |
+>|              |              |              | Pardiso.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_repe | OT_STRING    | no           | Interpretati | casadi::Ipop |
+>| ated_perturb |              |              | on of        | tInternal    |
+>| ation_means_ |              |              | perturbed    |              |
+>| singular     |              |              | elements.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pardiso_skip | OT_STRING    | no           | Always       | casadi::Ipop |
+>| _inertia_che |              |              | pretend      | tInternal    |
+>| ck           |              |              | inertia is   |              |
+>|              |              |              | correct.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pass_nonline | OT_BOOLEAN   | False        | n/a          | casadi::Ipop |
+>| ar_variables |              |              |              | tInternal    |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pen_des_fact | OT_REAL      | 0.200        | a parameter  | casadi::Ipop |
+>|              |              |              | used in      | tInternal    |
+>|              |              |              | penalty      |              |
+>|              |              |              | parameter    |              |
+>|              |              |              | computation  |              |
+>|              |              |              | (for Chen-   |              |
+>|              |              |              | Goldfarb     |              |
+>|              |              |              | line         |              |
+>|              |              |              | search).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pen_init_fac | OT_REAL      | 50           | a parameter  | casadi::Ipop |
+>|              |              |              | used to      | tInternal    |
+>|              |              |              | choose       |              |
+>|              |              |              | initial      |              |
+>|              |              |              | penalty para |              |
+>|              |              |              | meterswhen   |              |
+>|              |              |              | the          |              |
+>|              |              |              | regularized  |              |
+>|              |              |              | Newton       |              |
+>|              |              |              | method is    |              |
+>|              |              |              | used. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| pen_theta_ma | OT_REAL      | 10000        | Determines   | casadi::Ipop |
+>| x_fact       |              |              | upper bound  | tInternal    |
+>|              |              |              | for          |              |
+>|              |              |              | constraint   |              |
+>|              |              |              | violation in |              |
+>|              |              |              | the filter.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| penalty_init | OT_REAL      | 100000       | Maximal      | casadi::Ipop |
+>| _max         |              |              | value for    | tInternal    |
+>|              |              |              | the intial   |              |
+>|              |              |              | penalty      |              |
+>|              |              |              | parameter    |              |
+>|              |              |              | (for Chen-   |              |
+>|              |              |              | Goldfarb     |              |
+>|              |              |              | line         |              |
+>|              |              |              | search).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| penalty_init | OT_REAL      | 1            | Minimal      | casadi::Ipop |
+>| _min         |              |              | value for    | tInternal    |
+>|              |              |              | the intial   |              |
+>|              |              |              | penalty      |              |
+>|              |              |              | parameter    |              |
+>|              |              |              | for line     |              |
+>|              |              |              | search(for   |              |
+>|              |              |              | Chen-        |              |
+>|              |              |              | Goldfarb     |              |
+>|              |              |              | line         |              |
+>|              |              |              | search).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| penalty_max  | OT_REAL      | 1.000e+30    | Maximal      | casadi::Ipop |
+>|              |              |              | value for    | tInternal    |
+>|              |              |              | the penalty  |              |
+>|              |              |              | parameter    |              |
+>|              |              |              | (for Chen-   |              |
+>|              |              |              | Goldfarb     |              |
+>|              |              |              | line         |              |
+>|              |              |              | search).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| penalty_upda | OT_REAL      | 10           | LIFENG       | casadi::Ipop |
+>| te_compl_tol |              |              | WRITES THIS. | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| penalty_upda | OT_REAL      | 0.000        | Threshold    | casadi::Ipop |
+>| te_infeasibi |              |              | for infeasib | tInternal    |
+>| lity_tol     |              |              | ility in     |              |
+>|              |              |              | penalty      |              |
+>|              |              |              | parameter    |              |
+>|              |              |              | update test. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| perturb_alwa | OT_STRING    | no           | Active       | casadi::Ipop |
+>| ys_cd        |              |              | permanent    | tInternal    |
+>|              |              |              | perturbation |              |
+>|              |              |              | of           |              |
+>|              |              |              | constraint l |              |
+>|              |              |              | inearization |              |
+>|              |              |              | . (see IPOPT |              |
+>|              |              |              | documentatio |              |
+>|              |              |              | n)           |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| perturb_dec_ | OT_REAL      | 0.333        | Decrease     | casadi::Ipop |
+>| fact         |              |              | factor for   | tInternal    |
+>|              |              |              | x-s perturba |              |
+>|              |              |              | tion. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| perturb_inc_ | OT_REAL      | 8            | Increase     | casadi::Ipop |
+>| fact         |              |              | factor for   | tInternal    |
+>|              |              |              | x-s perturba |              |
+>|              |              |              | tion. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| perturb_inc_ | OT_REAL      | 100          | Increase     | casadi::Ipop |
+>| fact_first   |              |              | factor for   | tInternal    |
+>|              |              |              | x-s          |              |
+>|              |              |              | perturbation |              |
+>|              |              |              | for very     |              |
+>|              |              |              | first pertur |              |
+>|              |              |              | bation. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| piecewisepen | OT_REAL      | 0.000        | LIFENG       | casadi::Ipop |
+>| alty_gamma_i |              |              | WRITES THIS. | tInternal    |
+>| nfeasi       |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| piecewisepen | OT_REAL      | 0.000        | LIFENG       | casadi::Ipop |
+>| alty_gamma_o |              |              | WRITES THIS. | tInternal    |
+>| bj           |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| point_pertur | OT_REAL      | 10           | Maximal      | casadi::Ipop |
+>| bation_radiu |              |              | perturbation | tInternal    |
+>| s            |              |              | of an        |              |
+>|              |              |              | evaluation   |              |
+>|              |              |              | point. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_freque | OT_INTEGER   | 1            | Determines   | casadi::Ipop |
+>| ncy_iter     |              |              | at which     | tInternal    |
+>|              |              |              | iteration    |              |
+>|              |              |              | frequency    |              |
+>|              |              |              | the          |              |
+>|              |              |              | summarizing  |              |
+>|              |              |              | iteration    |              |
+>|              |              |              | output line  |              |
+>|              |              |              | should be    |              |
+>|              |              |              | printed.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_freque | OT_REAL      | 0            | Determines   | casadi::Ipop |
+>| ncy_time     |              |              | at which     | tInternal    |
+>|              |              |              | time         |              |
+>|              |              |              | frequency    |              |
+>|              |              |              | the          |              |
+>|              |              |              | summarizing  |              |
+>|              |              |              | iteration    |              |
+>|              |              |              | output line  |              |
+>|              |              |              | should be    |              |
+>|              |              |              | printed.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_info_s | OT_STRING    | no           | Enables      | casadi::Ipop |
+>| tring        |              |              | printing of  | tInternal    |
+>|              |              |              | additional   |              |
+>|              |              |              | info string  |              |
+>|              |              |              | at end of    |              |
+>|              |              |              | iteration    |              |
+>|              |              |              | output. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_level  | OT_INTEGER   | 5            | Output       | casadi::Ipop |
+>|              |              |              | verbosity    | tInternal    |
+>|              |              |              | level. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_option | OT_STRING    | no           | Switch to    | casadi::Ipop |
+>| s_documentat |              |              | print all    | tInternal    |
+>| ion          |              |              | algorithmic  |              |
+>|              |              |              | options.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_option | OT_STRING    | no           | Undocumented | casadi::Ipop |
+>| s_latex_mode |              |              | (see IPOPT d | tInternal    |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_time   | OT_BOOLEAN   | True         | print        | casadi::Ipop |
+>|              |              |              | information  | tInternal    |
+>|              |              |              | about        |              |
+>|              |              |              | execution    |              |
+>|              |              |              | time         |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_timing | OT_STRING    | no           | Switch to    | casadi::Ipop |
+>| _statistics  |              |              | print timing | tInternal    |
+>|              |              |              | statistics.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| print_user_o | OT_STRING    | no           | Print all    | casadi::Ipop |
+>| ptions       |              |              | options set  | tInternal    |
+>|              |              |              | by the user. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| quality_func | OT_STRING    | none         | The          | casadi::Ipop |
+>| tion_balanci |              |              | balancing    | tInternal    |
+>| ng_term      |              |              | term         |              |
+>|              |              |              | included in  |              |
+>|              |              |              | the quality  |              |
+>|              |              |              | function for |              |
+>|              |              |              | centrality.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| quality_func | OT_STRING    | none         | The penalty  | casadi::Ipop |
+>| tion_central |              |              | term for     | tInternal    |
+>| ity          |              |              | centrality   |              |
+>|              |              |              | that is      |              |
+>|              |              |              | included in  |              |
+>|              |              |              | quality      |              |
+>|              |              |              | function.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| quality_func | OT_INTEGER   | 8            | Maximum      | casadi::Ipop |
+>| tion_max_sec |              |              | number of    | tInternal    |
+>| tion_steps   |              |              | search steps |              |
+>|              |              |              | during       |              |
+>|              |              |              | direct       |              |
+>|              |              |              | search       |              |
+>|              |              |              | procedure    |              |
+>|              |              |              | determining  |              |
+>|              |              |              | the optimal  |              |
+>|              |              |              | centering    |              |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| quality_func | OT_STRING    | 2-norm-      | Norm used    | casadi::Ipop |
+>| tion_norm_ty |              | squared      | for          | tInternal    |
+>| pe           |              |              | components   |              |
+>|              |              |              | of the       |              |
+>|              |              |              | quality      |              |
+>|              |              |              | function.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| quality_func | OT_REAL      | 0            | Tolerance    | casadi::Ipop |
+>| tion_section |              |              | for the      | tInternal    |
+>| _qf_tol      |              |              | golden       |              |
+>|              |              |              | section      |              |
+>|              |              |              | search       |              |
+>|              |              |              | procedure    |              |
+>|              |              |              | determining  |              |
+>|              |              |              | the optimal  |              |
+>|              |              |              | centering    |              |
+>|              |              |              | parameter    |              |
+>|              |              |              | (in the      |              |
+>|              |              |              | function     |              |
+>|              |              |              | value        |              |
+>|              |              |              | space). (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| quality_func | OT_REAL      | 0.010        | Tolerance    | casadi::Ipop |
+>| tion_section |              |              | for the      | tInternal    |
+>| _sigma_tol   |              |              | section      |              |
+>|              |              |              | search       |              |
+>|              |              |              | procedure    |              |
+>|              |              |              | determining  |              |
+>|              |              |              | the optimal  |              |
+>|              |              |              | centering    |              |
+>|              |              |              | parameter    |              |
+>|              |              |              | (in sigma    |              |
+>|              |              |              | space). (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| recalc_y     | OT_STRING    | no           | Tells the    | casadi::Ipop |
+>|              |              |              | algorithm to | tInternal    |
+>|              |              |              | recalculate  |              |
+>|              |              |              | the equality |              |
+>|              |              |              | and          |              |
+>|              |              |              | inequality   |              |
+>|              |              |              | multipliers  |              |
+>|              |              |              | as least     |              |
+>|              |              |              | square       |              |
+>|              |              |              | estimates.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| recalc_y_fea | OT_REAL      | 0.000        | Feasibility  | casadi::Ipop |
+>| s_tol        |              |              | threshold    | tInternal    |
+>|              |              |              | for recomput |              |
+>|              |              |              | ation of     |              |
+>|              |              |              | multipliers. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| regularity_c | OT_BOOLEAN   | true         | Throw        | casadi::Func |
+>| heck         |              |              | exceptions   | tionInternal |
+>|              |              |              | when NaN or  |              |
+>|              |              |              | Inf appears  |              |
+>|              |              |              | during       |              |
+>|              |              |              | evaluation   |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| replace_boun | OT_STRING    | no           | Indicates if | casadi::Ipop |
+>| ds           |              |              | all variable | tInternal    |
+>|              |              |              | bounds       |              |
+>|              |              |              | should be    |              |
+>|              |              |              | replaced by  |              |
+>|              |              |              | inequality   |              |
+>|              |              |              | constraints  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| required_inf | OT_REAL      | 0.900        | Required     | casadi::Ipop |
+>| easibility_r |              |              | reduction of | tInternal    |
+>| eduction     |              |              | infeasibilit |              |
+>|              |              |              | y before     |              |
+>|              |              |              | leaving      |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| residual_imp | OT_REAL      | 1.000        | Minimal      | casadi::Ipop |
+>| rovement_fac |              |              | required     | tInternal    |
+>| tor          |              |              | reduction of |              |
+>|              |              |              | residual     |              |
+>|              |              |              | test ratio   |              |
+>|              |              |              | in iterative |              |
+>|              |              |              | refinement.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| residual_rat | OT_REAL      | 0.000        | Iterative    | casadi::Ipop |
+>| io_max       |              |              | refinement   | tInternal    |
+>|              |              |              | tolerance    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| residual_rat | OT_REAL      | 0.000        | Threshold    | casadi::Ipop |
+>| io_singular  |              |              | for          | tInternal    |
+>|              |              |              | declaring    |              |
+>|              |              |              | linear       |              |
+>|              |              |              | system       |              |
+>|              |              |              | singular     |              |
+>|              |              |              | after failed |              |
+>|              |              |              | iterative    |              |
+>|              |              |              | refinement.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| resto_failur | OT_REAL      | 0            | Threshold    | casadi::Ipop |
+>| e_feasibilit |              |              | for primal i | tInternal    |
+>| y_threshold  |              |              | nfeasibility |              |
+>|              |              |              | to declare   |              |
+>|              |              |              | failure of   |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| resto_penalt | OT_REAL      | 1000         | Penalty      | casadi::Ipop |
+>| y_parameter  |              |              | parameter in | tInternal    |
+>|              |              |              | the          |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase        |              |
+>|              |              |              | objective    |              |
+>|              |              |              | function.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| resto_proxim | OT_REAL      | 1            | Weighting    | casadi::Ipop |
+>| ity_weight   |              |              | factor for   | tInternal    |
+>|              |              |              | the          |              |
+>|              |              |              | proximity    |              |
+>|              |              |              | term in      |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase        |              |
+>|              |              |              | objective.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| rho          | OT_REAL      | 0.100        | Value in     | casadi::Ipop |
+>|              |              |              | penalty      | tInternal    |
+>|              |              |              | parameter    |              |
+>|              |              |              | update       |              |
+>|              |              |              | formula.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| s_max        | OT_REAL      | 100          | Scaling      | casadi::Ipop |
+>|              |              |              | threshold    | tInternal    |
+>|              |              |              | for the NLP  |              |
+>|              |              |              | error. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| s_phi        | OT_REAL      | 2.300        | Exponent for | casadi::Ipop |
+>|              |              |              | linear       | tInternal    |
+>|              |              |              | barrier      |              |
+>|              |              |              | function     |              |
+>|              |              |              | model in the |              |
+>|              |              |              | switching    |              |
+>|              |              |              | rule. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| s_theta      | OT_REAL      | 1.100        | Exponent for | casadi::Ipop |
+>|              |              |              | current      | tInternal    |
+>|              |              |              | constraint   |              |
+>|              |              |              | violation in |              |
+>|              |              |              | the          |              |
+>|              |              |              | switching    |              |
+>|              |              |              | rule. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| sb           | OT_STRING    | no           | (see IPOPT d | casadi::Ipop |
+>|              |              |              | ocumentation | tInternal    |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| sigma_max    | OT_REAL      | 100          | Maximum      | casadi::Ipop |
+>|              |              |              | value of the | tInternal    |
+>|              |              |              | centering    |              |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| sigma_min    | OT_REAL      | 0.000        | Minimum      | casadi::Ipop |
+>|              |              |              | value of the | tInternal    |
+>|              |              |              | centering    |              |
+>|              |              |              | parameter.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| skip_corr_if | OT_STRING    | yes          | Skip the     | casadi::Ipop |
+>| _neg_curv    |              |              | corrector    | tInternal    |
+>|              |              |              | step in      |              |
+>|              |              |              | negative     |              |
+>|              |              |              | curvature    |              |
+>|              |              |              | iteration (u |              |
+>|              |              |              | nsupported!) |              |
+>|              |              |              | . (see IPOPT |              |
+>|              |              |              | documentatio |              |
+>|              |              |              | n)           |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| skip_corr_in | OT_STRING    | yes          | Skip the     | casadi::Ipop |
+>| _monotone_mo |              |              | corrector    | tInternal    |
+>| de           |              |              | step during  |              |
+>|              |              |              | monotone     |              |
+>|              |              |              | barrier      |              |
+>|              |              |              | parameter    |              |
+>|              |              |              | mode (unsupp |              |
+>|              |              |              | orted!).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| skip_finaliz | OT_STRING    | no           | Indicates if | casadi::Ipop |
+>| e_solution_c |              |              | call to NLP: | tInternal    |
+>| all          |              |              | :FinalizeSol |              |
+>|              |              |              | ution after  |              |
+>|              |              |              | optimization |              |
+>|              |              |              | should be    |              |
+>|              |              |              | suppressed   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| slack_bound_ | OT_REAL      | 0.010        | Desired      | casadi::Ipop |
+>| frac         |              |              | minimum      | tInternal    |
+>|              |              |              | relative     |              |
+>|              |              |              | distance     |              |
+>|              |              |              | from the     |              |
+>|              |              |              | initial      |              |
+>|              |              |              | slack to     |              |
+>|              |              |              | bound. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| slack_bound_ | OT_REAL      | 0.010        | Desired      | casadi::Ipop |
+>| push         |              |              | minimum      | tInternal    |
+>|              |              |              | absolute     |              |
+>|              |              |              | distance     |              |
+>|              |              |              | from the     |              |
+>|              |              |              | initial      |              |
+>|              |              |              | slack to     |              |
+>|              |              |              | bound. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| slack_move   | OT_REAL      | 0.000        | Correction   | casadi::Ipop |
+>|              |              |              | size for     | tInternal    |
+>|              |              |              | very small   |              |
+>|              |              |              | slacks. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| soft_resto_p | OT_REAL      | 1.000        | Required     | casadi::Ipop |
+>| derror_reduc |              |              | reduction in | tInternal    |
+>| tion_factor  |              |              | primal-dual  |              |
+>|              |              |              | error in the |              |
+>|              |              |              | soft         |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase. (see  |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| start_with_r | OT_STRING    | no           | Tells        | casadi::Ipop |
+>| esto         |              |              | algorithm to | tInternal    |
+>|              |              |              | switch to    |              |
+>|              |              |              | restoration  |              |
+>|              |              |              | phase in     |              |
+>|              |              |              | first        |              |
+>|              |              |              | iteration.   |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| suppress_all | OT_STRING    | no           | Undocumented | casadi::Ipop |
+>| _output      |              |              | (see IPOPT d | tInternal    |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| tau_min      | OT_REAL      | 0.990        | Lower bound  | casadi::Ipop |
+>|              |              |              | on fraction- | tInternal    |
+>|              |              |              | to-the-      |              |
+>|              |              |              | boundary     |              |
+>|              |              |              | parameter    |              |
+>|              |              |              | tau. (see    |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| theta_max_fa | OT_REAL      | 10000        | Determines   | casadi::Ipop |
+>| ct           |              |              | upper bound  | tInternal    |
+>|              |              |              | for          |              |
+>|              |              |              | constraint   |              |
+>|              |              |              | violation in |              |
+>|              |              |              | the filter.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| theta_min    | OT_REAL      | 0.000        | LIFENG       | casadi::Ipop |
+>|              |              |              | WRITES THIS. | tInternal    |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| theta_min_fa | OT_REAL      | 0.000        | Determines   | casadi::Ipop |
+>| ct           |              |              | constraint   | tInternal    |
+>|              |              |              | violation    |              |
+>|              |              |              | threshold in |              |
+>|              |              |              | the          |              |
+>|              |              |              | switching    |              |
+>|              |              |              | rule. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| tiny_step_to | OT_REAL      | 0.000        | Tolerance    | casadi::Ipop |
+>| l            |              |              | for          | tInternal    |
+>|              |              |              | detecting    |              |
+>|              |              |              | numerically  |              |
+>|              |              |              | insignifican |              |
+>|              |              |              | t steps.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| tiny_step_y_ | OT_REAL      | 0.010        | Tolerance    | casadi::Ipop |
+>| tol          |              |              | for quitting | tInternal    |
+>|              |              |              | because of   |              |
+>|              |              |              | numerically  |              |
+>|              |              |              | insignifican |              |
+>|              |              |              | t steps.     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| tol          | OT_REAL      | 0.000        | Desired      | casadi::Ipop |
+>|              |              |              | convergence  | tInternal    |
+>|              |              |              | tolerance    |              |
+>|              |              |              | (relative).  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| user_data    | OT_VOIDPTR   | GenericType( | A user-      | casadi::Func |
+>|              |              | )            | defined      | tionInternal |
+>|              |              |              | field that   |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | to identify  |              |
+>|              |              |              | the function |              |
+>|              |              |              | or pass      |              |
+>|              |              |              | additional   |              |
+>|              |              |              | information  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| var_integer_ | OT_DICTIONAR | None         | Integer      | casadi::Ipop |
+>| md           | Y            |              | metadata (a  | tInternal    |
+>|              |              |              | dictionary   |              |
+>|              |              |              | with lists   |              |
+>|              |              |              | of integers) |              |
+>|              |              |              | about        |              |
+>|              |              |              | variables to |              |
+>|              |              |              | be passed to |              |
+>|              |              |              | IPOPT        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| var_numeric_ | OT_DICTIONAR | None         | Numeric      | casadi::Ipop |
+>| md           | Y            |              | metadata (a  | tInternal    |
+>|              |              |              | dictionary   |              |
+>|              |              |              | with lists   |              |
+>|              |              |              | of reals)    |              |
+>|              |              |              | about        |              |
+>|              |              |              | variables to |              |
+>|              |              |              | be passed to |              |
+>|              |              |              | IPOPT        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| var_string_m | OT_DICTIONAR | None         | String       | casadi::Ipop |
+>| d            | Y            |              | metadata (a  | tInternal    |
+>|              |              |              | dictionary   |              |
+>|              |              |              | with lists   |              |
+>|              |              |              | of strings)  |              |
+>|              |              |              | about        |              |
+>|              |              |              | variables to |              |
+>|              |              |              | be passed to |              |
+>|              |              |              | IPOPT        |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| vartheta     | OT_REAL      | 0.500        | a parameter  | casadi::Ipop |
+>|              |              |              | used to      | tInternal    |
+>|              |              |              | check if the |              |
+>|              |              |              | fast         |              |
+>|              |              |              | direction    |              |
+>|              |              |              | can be used  |              |
+>|              |              |              | asthe line   |              |
+>|              |              |              | search       |              |
+>|              |              |              | direction    |              |
+>|              |              |              | (for Chen-   |              |
+>|              |              |              | Goldfarb     |              |
+>|              |              |              | line         |              |
+>|              |              |              | search).     |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| verbose      | OT_BOOLEAN   | false        | Verbose      | casadi::Func |
+>|              |              |              | evaluation   | tionInternal |
+>|              |              |              | for          |              |
+>|              |              |              | debugging    |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warm_start_b | OT_REAL      | 0.001        | same as      | casadi::Ipop |
+>| ound_frac    |              |              | bound_frac   | tInternal    |
+>|              |              |              | for the      |              |
+>|              |              |              | regular      |              |
+>|              |              |              | initializer. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warm_start_b | OT_REAL      | 0.001        | same as      | casadi::Ipop |
+>| ound_push    |              |              | bound_push   | tInternal    |
+>|              |              |              | for the      |              |
+>|              |              |              | regular      |              |
+>|              |              |              | initializer. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warm_start_e | OT_STRING    | no           | Tells        | casadi::Ipop |
+>| ntire_iterat |              |              | algorithm    | tInternal    |
+>| e            |              |              | whether to   |              |
+>|              |              |              | use the GetW |              |
+>|              |              |              | armStartIter |              |
+>|              |              |              | ate method   |              |
+>|              |              |              | in the NLP.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warm_start_i | OT_STRING    | no           | Warm-start   | casadi::Ipop |
+>| nit_point    |              |              | for initial  | tInternal    |
+>|              |              |              | point (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warm_start_m | OT_REAL      | 0.001        | same as mult | casadi::Ipop |
+>| ult_bound_pu |              |              | _bound_push  | tInternal    |
+>| sh           |              |              | for the      |              |
+>|              |              |              | regular      |              |
+>|              |              |              | initializer. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warm_start_m | OT_REAL      | 1000000      | Maximum      | casadi::Ipop |
+>| ult_init_max |              |              | initial      | tInternal    |
+>|              |              |              | value for    |              |
+>|              |              |              | the equality |              |
+>|              |              |              | multipliers. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warm_start_s | OT_STRING    | no           | Indicates    | casadi::Ipop |
+>| ame_structur |              |              | whether a    | tInternal    |
+>| e            |              |              | problem with |              |
+>|              |              |              | a structure  |              |
+>|              |              |              | identical to |              |
+>|              |              |              | the previous |              |
+>|              |              |              | one is to be |              |
+>|              |              |              | solved. (see |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warm_start_s | OT_REAL      | 0.001        | same as slac | casadi::Ipop |
+>| lack_bound_f |              |              | k_bound_frac | tInternal    |
+>| rac          |              |              | for the      |              |
+>|              |              |              | regular      |              |
+>|              |              |              | initializer. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warm_start_s | OT_REAL      | 0.001        | same as slac | casadi::Ipop |
+>| lack_bound_p |              |              | k_bound_push | tInternal    |
+>| ush          |              |              | for the      |              |
+>|              |              |              | regular      |              |
+>|              |              |              | initializer. |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warm_start_t | OT_REAL      | 0            | Unsupported! | casadi::Ipop |
+>| arget_mu     |              |              | (see IPOPT d | tInternal    |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| warn_initial | OT_BOOLEAN   | false        | Warn if the  | casadi::NLPS |
+>| _bounds      |              |              | initial      | olverInterna |
+>|              |              |              | guess does   | l            |
+>|              |              |              | not satisfy  |              |
+>|              |              |              | LBX and UBX  |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| watchdog_sho | OT_INTEGER   | 10           | Number of    | casadi::Ipop |
+>| rtened_iter_ |              |              | shortened    | tInternal    |
+>| trigger      |              |              | iterations   |              |
+>|              |              |              | that trigger |              |
+>|              |              |              | the          |              |
+>|              |              |              | watchdog.    |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| watchdog_tri | OT_INTEGER   | 3            | Maximum      | casadi::Ipop |
+>| al_iter_max  |              |              | number of    | tInternal    |
+>|              |              |              | watchdog     |              |
+>|              |              |              | iterations.  |              |
+>|              |              |              | (see IPOPT d |              |
+>|              |              |              | ocumentation |              |
+>|              |              |              | )            |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>| wsmp_iterati | OT_STRING    | no           | Switches to  | casadi::Ipop |
+>| ve           |              |              | iterative    | tInternal    |
+>|              |              |              | solver in    |              |
+>|              |              |              | WSMP. (see   |              |
+>|              |              |              | IPOPT docume |              |
+>|              |              |              | ntation)     |              |
+>+--------------+--------------+--------------+--------------+--------------+
+>
+>>List of available monitors
+>+-------------+--------------------------+
+>|     Id      |         Used in          |
+>+=============+==========================+
+>| eval_f      | casadi::IpoptInternal    |
+>+-------------+--------------------------+
+>| eval_g      | casadi::IpoptInternal    |
+>+-------------+--------------------------+
+>| eval_grad_f | casadi::IpoptInternal    |
+>+-------------+--------------------------+
+>| eval_h      | casadi::IpoptInternal    |
+>+-------------+--------------------------+
+>| eval_jac_g  | casadi::IpoptInternal    |
+>+-------------+--------------------------+
+>| inputs      | casadi::FunctionInternal |
+>+-------------+--------------------------+
+>| outputs     | casadi::FunctionInternal |
+>+-------------+--------------------------+
+>
+>>List of available stats
+>+--------------------+-----------------------+
+>|         Id         |        Used in        |
+>+====================+=======================+
+>| con_integer_md     | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| con_numeric_md     | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| con_string_md      | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| iter_count         | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| iteration          | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| iterations         | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| n_eval_f           | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| n_eval_g           | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| n_eval_grad_f      | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| n_eval_h           | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| n_eval_jac_g       | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| return_status      | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| t_callback_fun     | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| t_callback_prepare | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| t_eval_f           | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| t_eval_g           | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| t_eval_grad_f      | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| t_eval_h           | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| t_eval_jac_g       | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| t_mainloop         | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| var_integer_md     | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| var_numeric_md     | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>| var_string_md      | casadi::IpoptInternal |
+>+--------------------+-----------------------+
+>
+>Diagrams
+>
+>C++ includes: ipopt_solver.hpp 
+-}
+newtype IpoptSolver = IpoptSolver (ForeignPtr IpoptSolver')
+-- typeclass decl
+class IpoptSolverClass a where
+  castIpoptSolver :: a -> IpoptSolver
+instance IpoptSolverClass IpoptSolver where
+  castIpoptSolver = id
+
+-- baseclass instances
+instance NLPSolverClass IpoptSolver where
+  castNLPSolver (IpoptSolver x) = NLPSolver (castForeignPtr x)
+
+
+-- helper instances
+instance Marshal IpoptSolver (Ptr IpoptSolver') where
+  marshal (IpoptSolver x) = return (unsafeForeignPtrToPtr x)
+  marshalFree (IpoptSolver x) _ = touchForeignPtr x
+foreign import ccall unsafe "&delete_casadi__IpoptSolver" 
+  c_delete_casadi__IpoptSolver :: FunPtr (Ptr IpoptSolver' -> IO ())
+instance WrapReturn (Ptr IpoptSolver') IpoptSolver where
+  wrapReturn = (fmap IpoptSolver) . (newForeignPtr c_delete_casadi__IpoptSolver)
+
+
diff --git a/Casadi/IpoptInterface/Enums.hs b/Casadi/IpoptInterface/Enums.hs
new file mode 100644
--- /dev/null
+++ b/Casadi/IpoptInterface/Enums.hs
@@ -0,0 +1,13 @@
+{-# OPTIONS_GHC -Wall #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+
+module Casadi.IpoptInterface.Enums
+       (
+       ) where
+
+
+import Foreign.C.Types ( CInt(..) )
+import Casadi.Internal.Marshal ( Marshal(..) )
+import Casadi.Internal.WrapReturn ( WrapReturn(..) )
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,165 @@
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions. 
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version. 
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMainWithHooks simpleUserHooks
diff --git a/casadi-bindings-ipopt-interface.cabal b/casadi-bindings-ipopt-interface.cabal
new file mode 100644
--- /dev/null
+++ b/casadi-bindings-ipopt-interface.cabal
@@ -0,0 +1,38 @@
+name:                casadi-bindings-ipopt-interface
+version:             1.9.0.1
+license:             LGPL-3
+license-file:        LICENSE
+category:            Numerical, Math
+copyright:           (c) 2013-2014 Greg Horn
+author:              Greg Horn
+maintainer:          gregmainland@gmail.com
+build-type:          Simple
+cabal-version:       >=1.10
+synopsis:            low level bindings to casadi-ipopt_interface
+description:         see http://hackage.haskell.org/package/casadi-bindings for instructions
+extra-source-files:  cbits/marshal.hpp
+extra-tmp-files:     Casadi/Callback_stub.h
+
+library
+  build-depends:       base >=4.6 && <5,
+                       vector >=0.10,
+                       casadi-bindings-core,
+                       casadi-bindings-internal
+
+  default-language:    Haskell2010
+
+
+  extra-libraries:  stdc++
+
+  pkgconfig-depends: casadi_ipopt_interface
+
+  ghc-prof-options: -prof -fprof-auto -fprof-cafs -rtsopts
+  ghc-options: 
+  cc-options: -Wall -Wno-delete-non-virtual-dtor
+
+  C-sources:        cbits/autogen/ipopt_interface_classes.cpp
+                    cbits/autogen/ipopt_interface_functions.cpp
+
+  exposed-modules:  Casadi.IpoptInterface.Data
+                    Casadi.IpoptInterface.Enums
+                    Casadi.IpoptInterface.Classes.IpoptSolver
diff --git a/cbits/autogen/ipopt_interface_classes.cpp b/cbits/autogen/ipopt_interface_classes.cpp
new file mode 100644
--- /dev/null
+++ b/cbits/autogen/ipopt_interface_classes.cpp
@@ -0,0 +1,164 @@
+#include "casadi/core/casadi_calculus.hpp"
+#include "casadi/core/casadi_exception.hpp"
+#include "casadi/core/casadi_meta.hpp"
+#include "casadi/core/casadi_options.hpp"
+#include "casadi/core/casadi_types.hpp"
+#include "casadi/core/function/control_simulator.hpp"
+#include "casadi/core/function/custom_function.hpp"
+#include "casadi/core/function/external_function.hpp"
+#include "casadi/core/function/function.hpp"
+#include "casadi/core/function/homotopy_nlp_solver.hpp"
+#include "casadi/core/function/implicit_function.hpp"
+#include "casadi/core/function/integrator.hpp"
+#include "casadi/core/function/io_interface.hpp"
+#include "casadi/core/function/linear_solver.hpp"
+#include "casadi/core/function/lp_solver.hpp"
+#include "casadi/core/function/mx_function.hpp"
+#include "casadi/core/function/nlp_solver.hpp"
+#include "casadi/core/function/nullspace.hpp"
+#include "casadi/core/function/ocp_solver.hpp"
+#include "casadi/core/function/parallelizer.hpp"
+#include "casadi/core/function/qcqp_solver.hpp"
+#include "casadi/core/function/qp_solver.hpp"
+#include "casadi/core/function/sdp_solver.hpp"
+#include "casadi/core/function/sdqp_solver.hpp"
+#include "casadi/core/function/simulator.hpp"
+#include "casadi/core/function/socp_solver.hpp"
+#include "casadi/core/function/stabilized_qp_solver.hpp"
+#include "casadi/core/function/sx_function.hpp"
+#include "casadi/core/function/symbolic_qr.hpp"
+#include "casadi/core/functor.hpp"
+#include "casadi/core/generic_type.hpp"
+#include "casadi/core/matrix/generic_expression.hpp"
+#include "casadi/core/matrix/generic_matrix.hpp"
+#include "casadi/core/matrix/matrix.hpp"
+#include "casadi/core/matrix/matrix_tools.hpp"
+#include "casadi/core/matrix/slice.hpp"
+#include "casadi/core/matrix/sparsity.hpp"
+#include "casadi/core/matrix/sparsity_tools.hpp"
+#include "casadi/core/mx/mx.hpp"
+#include "casadi/core/mx/mx_tools.hpp"
+#include "casadi/core/options_functionality.hpp"
+#include "casadi/core/printable_object.hpp"
+#include "casadi/core/shared_object.hpp"
+#include "casadi/core/std_vector_tools.hpp"
+#include "casadi/core/sx/sx_element.hpp"
+#include "casadi/core/sx/sx_tools.hpp"
+#include "casadi/core/weak_ref.hpp"
+#include "casadi/interfaces/ipopt/ipopt_solver.hpp"
+#include <cmath>
+#include <sstream>
+#include <stdexcept>
+#include "../marshal.hpp"
+
+// ================== delete UserType (Namespace ["casadi"]) (Name "IpoptSolver")===============
+// classType: UserType (Namespace ["casadi"]) (Name "IpoptSolver")
+extern "C"
+    void delete_casadi__IpoptSolver(casadi::IpoptSolver* obj);
+void delete_casadi__IpoptSolver(casadi::IpoptSolver* obj){
+    delete obj;
+}
+
+// ================== Constructor method: "CONSTRUCTOR" ===============
+// class: "casadi::IpoptSolver"
+// cppName: "casadi::IpoptSolver"
+// cWrapperName: "casadi__IpoptSolver__CONSTRUCTOR__0"
+// protoArgs: "(std::string ** err_msg, casadi::Function* x0)"
+// args: "(x0_)"
+// rettype: UserType (Namespace ["casadi"]) (Name "IpoptSolver")
+// cWrapperRetType: "casadi::IpoptSolver*"
+// proto: "casadi::IpoptSolver* casadi__IpoptSolver__CONSTRUCTOR__0(std::string ** err_msg, casadi::Function* x0)"
+// call: "casadi::IpoptSolver(x0_)"
+// params: [Ref (Const (UserType (Namespace ["casadi"]) (Name "Function")))]
+extern "C"
+    casadi::IpoptSolver* casadi__IpoptSolver__CONSTRUCTOR__0(std::string ** err_msg, casadi::Function* x0);
+casadi::IpoptSolver* casadi__IpoptSolver__CONSTRUCTOR__0(std::string ** err_msg, casadi::Function* x0){
+    try {
+        casadi::Function x0_ = Marshaling<casadi::Function,casadi::Function*>::marshal(x0);
+
+        casadi::IpoptSolver ret = casadi::IpoptSolver(x0_);
+        return WrapReturn< casadi::IpoptSolver*, casadi::IpoptSolver >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== Constructor method: "CONSTRUCTOR" ===============
+// class: "casadi::IpoptSolver"
+// cppName: "casadi::IpoptSolver"
+// cWrapperName: "casadi__IpoptSolver__CONSTRUCTOR__1"
+// protoArgs: "(std::string ** err_msg)"
+// args: "()"
+// rettype: UserType (Namespace ["casadi"]) (Name "IpoptSolver")
+// cWrapperRetType: "casadi::IpoptSolver*"
+// proto: "casadi::IpoptSolver* casadi__IpoptSolver__CONSTRUCTOR__1(std::string ** err_msg)"
+// call: "casadi::IpoptSolver()"
+// params: []
+extern "C"
+    casadi::IpoptSolver* casadi__IpoptSolver__CONSTRUCTOR__1(std::string ** err_msg);
+casadi::IpoptSolver* casadi__IpoptSolver__CONSTRUCTOR__1(std::string ** err_msg){
+    try {
+
+        casadi::IpoptSolver ret = casadi::IpoptSolver();
+        return WrapReturn< casadi::IpoptSolver*, casadi::IpoptSolver >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== Static method: "creator" ===============
+// class: "casadi::IpoptSolver"
+// cppName: "casadi::IpoptSolver::creator"
+// cWrapperName: "casadi__IpoptSolver__creator"
+// protoArgs: "(std::string ** err_msg, casadi::Function* x0)"
+// args: "(x0_)"
+// rettype: UserType (Namespace ["casadi"]) (Name "NLPSolver")
+// cWrapperRetType: "casadi::NLPSolver*"
+// proto: "casadi::NLPSolver* casadi__IpoptSolver__creator(std::string ** err_msg, casadi::Function* x0)"
+// call: "casadi::IpoptSolver::creator(x0_)"
+// params: [Ref (Const (UserType (Namespace ["casadi"]) (Name "Function")))]
+extern "C"
+    casadi::NLPSolver* casadi__IpoptSolver__creator(std::string ** err_msg, casadi::Function* x0);
+casadi::NLPSolver* casadi__IpoptSolver__creator(std::string ** err_msg, casadi::Function* x0){
+    try {
+        casadi::Function x0_ = Marshaling<casadi::Function,casadi::Function*>::marshal(x0);
+
+        casadi::NLPSolver ret = casadi::IpoptSolver::creator(x0_);
+        return WrapReturn< casadi::NLPSolver*, casadi::NLPSolver >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+// ================== Normal method: "getReducedHessian" ===============
+// class: "casadi::IpoptSolver"
+// cppName: "casadi::IpoptSolver::getReducedHessian"
+// cWrapperName: "casadi__IpoptSolver__getReducedHessian"
+// protoArgs: "(std::string ** err_msg, casadi::IpoptSolver* obj)"
+// args: "()"
+// rettype: UserType (Namespace ["casadi"]) (Name "DMatrix")
+// cWrapperRetType: "casadi::DMatrix*"
+// proto: "casadi::DMatrix* casadi__IpoptSolver__getReducedHessian(std::string ** err_msg, casadi::IpoptSolver* obj)"
+// call: "obj->getReducedHessian()"
+// params: []
+extern "C"
+    casadi::DMatrix* casadi__IpoptSolver__getReducedHessian(std::string ** err_msg, casadi::IpoptSolver* obj);
+casadi::DMatrix* casadi__IpoptSolver__getReducedHessian(std::string ** err_msg, casadi::IpoptSolver* obj){
+    try {
+
+        casadi::DMatrix ret = obj->getReducedHessian();
+        return WrapReturn< casadi::DMatrix*, casadi::DMatrix >::wrapReturn( ret );
+    } catch (std::exception& ex) {
+         *err_msg = new std::string(ex.what());
+         return 0;
+    }
+}
+
+
+
diff --git a/cbits/autogen/ipopt_interface_functions.cpp b/cbits/autogen/ipopt_interface_functions.cpp
new file mode 100644
--- /dev/null
+++ b/cbits/autogen/ipopt_interface_functions.cpp
@@ -0,0 +1,53 @@
+#include "casadi/core/casadi_calculus.hpp"
+#include "casadi/core/casadi_exception.hpp"
+#include "casadi/core/casadi_meta.hpp"
+#include "casadi/core/casadi_options.hpp"
+#include "casadi/core/casadi_types.hpp"
+#include "casadi/core/function/control_simulator.hpp"
+#include "casadi/core/function/custom_function.hpp"
+#include "casadi/core/function/external_function.hpp"
+#include "casadi/core/function/function.hpp"
+#include "casadi/core/function/homotopy_nlp_solver.hpp"
+#include "casadi/core/function/implicit_function.hpp"
+#include "casadi/core/function/integrator.hpp"
+#include "casadi/core/function/io_interface.hpp"
+#include "casadi/core/function/linear_solver.hpp"
+#include "casadi/core/function/lp_solver.hpp"
+#include "casadi/core/function/mx_function.hpp"
+#include "casadi/core/function/nlp_solver.hpp"
+#include "casadi/core/function/nullspace.hpp"
+#include "casadi/core/function/ocp_solver.hpp"
+#include "casadi/core/function/parallelizer.hpp"
+#include "casadi/core/function/qcqp_solver.hpp"
+#include "casadi/core/function/qp_solver.hpp"
+#include "casadi/core/function/sdp_solver.hpp"
+#include "casadi/core/function/sdqp_solver.hpp"
+#include "casadi/core/function/simulator.hpp"
+#include "casadi/core/function/socp_solver.hpp"
+#include "casadi/core/function/stabilized_qp_solver.hpp"
+#include "casadi/core/function/sx_function.hpp"
+#include "casadi/core/function/symbolic_qr.hpp"
+#include "casadi/core/functor.hpp"
+#include "casadi/core/generic_type.hpp"
+#include "casadi/core/matrix/generic_expression.hpp"
+#include "casadi/core/matrix/generic_matrix.hpp"
+#include "casadi/core/matrix/matrix.hpp"
+#include "casadi/core/matrix/matrix_tools.hpp"
+#include "casadi/core/matrix/slice.hpp"
+#include "casadi/core/matrix/sparsity.hpp"
+#include "casadi/core/matrix/sparsity_tools.hpp"
+#include "casadi/core/mx/mx.hpp"
+#include "casadi/core/mx/mx_tools.hpp"
+#include "casadi/core/options_functionality.hpp"
+#include "casadi/core/printable_object.hpp"
+#include "casadi/core/shared_object.hpp"
+#include "casadi/core/std_vector_tools.hpp"
+#include "casadi/core/sx/sx_element.hpp"
+#include "casadi/core/sx/sx_tools.hpp"
+#include "casadi/core/weak_ref.hpp"
+#include "casadi/interfaces/ipopt/ipopt_solver.hpp"
+#include <cmath>
+#include <sstream>
+#include <stdexcept>
+#include "../marshal.hpp"
+
diff --git a/cbits/marshal.hpp b/cbits/marshal.hpp
new file mode 100644
--- /dev/null
+++ b/cbits/marshal.hpp
@@ -0,0 +1,182 @@
+#ifndef __MARSHAL_THEM_BINDINGS_H__
+#define __MARSHAL_THEM_BINDINGS_H__
+
+#include <iostream>
+
+template<class T1, class T2>
+class Marshaling {
+public:
+    static T1 marshal(T2 x){ return static_cast<T1>(x); }
+};
+
+template<class T>
+class Marshaling< T, T* > {
+public:
+    static T marshal(T* x){ return *x; }
+};
+
+template<class T>
+class Marshaling< T&, T* > {
+public:
+    static T& marshal(T* x){ return *x; }
+};
+
+template<class T>
+class Marshaling< T const &, T* > {
+public:
+    static T const & marshal(T* x){ return *x; }
+};
+
+template<class T1, class T2>
+class Marshaling< std::vector< T1 >, std::vector< T2 > > {
+  public:
+  static std::vector< T1 > marshal(const std::vector< T2 > inputs){
+    std::vector< T1 > vec;
+    for (unsigned int k=0; k<inputs.size(); k++){
+        vec.push_back( Marshaling< T1, T2 >::marshal(inputs[k]) );
+    }
+    return vec;
+  }
+};
+
+
+template<class T1, class T2>
+class Marshaling< T1, T2* > {
+  public:
+  static T1 marshal(T2* x){
+      return Marshaling<T1, T2>::marshal( *x );
+  }
+};
+
+
+/* ---------------------------------------------------------- */
+/* call "new" on a bunch of stuff  */
+template<class T1, class T2>
+class WrapReturn {
+ public:
+    static T1 wrapReturn(T2 x){ return x; }
+};
+
+template<class T1, class T2>
+class WrapReturn< std::vector< T1 >, std::vector< T2 > > {
+  public:
+  static std::vector< T1 > wrapReturn(std::vector< T2 > inputs){
+    std::vector< T1 > vec;
+    for (unsigned int k=0; k<inputs.size(); k++){
+        vec.push_back( WrapReturn< T1, T2 >::wrapReturn(inputs[k]) );
+    }
+    return vec;
+  }
+};
+
+template<class T1, class T2>
+class WrapReturn< T1*, T2 > {
+  public:
+  static T1* wrapReturn(T2 x){
+      return new T1( WrapReturn<T1,T2>::wrapReturn(x) );
+  }
+};
+
+
+// some examples:
+
+//#include <vector>
+//#include <string>
+//class A{};
+//
+//void testWrapReturn(){
+//    // make a bunch of dummy inputs
+//    A a = A();
+//    std::vector< A > v_a = std::vector< A >();
+//    std::vector< A > const v_c_a = std::vector< A >();
+//    std::vector< std::vector< A > > v_v_a = std::vector< std::vector< A > >();
+//    std::vector< std::vector< int > > v_v_int = std::vector< std::vector< int > >();
+//    //std::vector< A >* pv_a = new std::vector< A >();
+//    //std::vector< A* > v_pa = std::vector< A* >();
+//    //std::vector< std::vector< A* >* >* pv_pv_pa = new std::vector< std::vector< A* >* >();
+//
+//    // try to use wrapReturn on the dummy inputs
+//    A* o0 __attribute__((unused)) = WrapReturn< A*, A>::wrapReturn(a);
+//
+//
+//    std::vector< A* >* o4 __attribute__((unused)) =
+//        WrapReturn< std::vector< A* >*, std::vector< A > >::wrapReturn(v_a);
+//
+//    std::vector< A* >* o7 __attribute__((unused)) =
+//        WrapReturn< std::vector< A* >*, std::vector< A > >::wrapReturn(v_c_a);
+//
+//
+//    std::vector< std::vector< A* >* >* o5 __attribute__((unused)) =
+//        WrapReturn< std::vector< std::vector< A* >* >*,
+//                    std::vector< std::vector< A > >
+//                    >::wrapReturn(v_v_a);
+//
+//
+//    std::vector< std::vector< int >* >* o6 __attribute__((unused)) =
+//        WrapReturn< std::vector< std::vector< int >* >*,
+//                    std::vector< std::vector< int > >
+//                    >::wrapReturn(v_v_int);
+//    //std::vector< A > o5 = WrapReturn< std::vector< A >, std::vector< A* > >::wrapReturn(v_pa);
+//    //
+//    //std::vector< A > o6 = WrapReturn< std::vector< A >, std::vector< A* >* >::wrapReturn(pv_pa);
+//    //std::vector< std::vector< A > > o7 =
+//    //    WrapReturn< std::vector< std::vector< A > >,
+//    //                std::vector< std::vector< A* >* >*
+//    //                >::wrapReturn(pv_pv_pa);
+//}
+//
+//void testMarshal(){
+//    // make a bunch of dummy inputs
+//    A* pa = new A();
+//    std::vector< A* >* pv_pa = new std::vector< A* >();
+//    std::vector< A >* pv_a = new std::vector< A >();
+//    std::vector< A* > v_pa = std::vector< A* >();
+//    std::vector< std::vector< A* >* >* pv_pv_pa = new std::vector< std::vector< A* >* >();
+//
+//    // try to use marshal on the dummy inputs
+//    A o0 __attribute__((unused)) = Marshaling< A, A*>::marshal(pa);
+//    A& o1 __attribute__((unused)) = Marshaling< A&, A*>::marshal(pa);
+//    A const & o2 __attribute__((unused)) = Marshaling< A const &, A*>::marshal(pa);
+//
+//    std::vector< A > o3 = Marshaling< std::vector< A >, std::vector< A >* >::marshal(pv_a);
+//    std::vector< A* > o4 = Marshaling< std::vector< A* >, std::vector< A* >* >::marshal(pv_pa);
+//    std::vector< A > o5 = Marshaling< std::vector< A >, std::vector< A* > >::marshal(v_pa);
+//
+//    std::vector< A > o6 = Marshaling< std::vector< A >, std::vector< A* >* >::marshal(pv_pa);
+//    std::vector< std::vector< A > > o7 =
+//        Marshaling< std::vector< std::vector< A > >,
+//                    std::vector< std::vector< A* >* >*
+//                    >::marshal(pv_pv_pa);
+//}
+
+
+//
+//
+//using namespace CasADi;
+//using namespace std;
+//
+//// test program
+//int main(){
+//    string name = string("x");
+//    cout << "calling ssym\n";
+//    Matrix< SX >* x = CasADi__ssym_TIC(&name, 1);
+//    cout << "ssym results: " << *x << "\n\n";
+//
+//    cout << "calling .data()\n";
+//    vector< SX* >* vecsx =
+//        CasADi__Matrix_CasADi__SX___data(x);
+//    cout << "data results: " << *vecsx << "\n";
+//    cout << "data results: " << *((*vecsx)[0]) << "\n";
+//    cout << "size of data: " << vecsx->size() << "\n\n";
+//
+//    cout << "calling SXMatrix(vector<SX*>)\n";
+//    Matrix< SX >* sxmat =
+//        CasADi__Matrix_CasADi__SX___SXMatrix_TIC_TIC_TIC_TIC_TIC_TIC_TIC_TIC_TIC_TIC_TIC( vecsx );
+//    cout << "calling SXMatrix.getDescription()\n";
+//    cout << sxmat->getDescription() << "\n";
+//    cout << "\n\n===== horray =====\n";
+//    return 0;
+//}
+
+
+#endif // __MARSHAL_THEM_BINDINGS_H__
