RobotLocomotion/drake — pull request #48 by hongkai-dai (2014-03-08 21:13:26+00:00)
Title: Nonlinear program

* Define a class 'Constraint', that supports bounds and evaluation of the constraint. Each constraint also encodes the bounds on the decision variables.
* `NonlinearConstraint`. Support functions called `evalSparse` and `setSparseStructure`, which can set the sparsity pattern of the first order gradient. `NonlinearConstraint` can be constructed using a function handle, or its `eval` function can be overloaded by child class
* `LinearConstraint`. Constructed from a linear matrix
* `NonlinearProgram` is redefined. It now handles the constraints with both lower and upper bounds, rather than unilateral nonlinear constraint.
* `NonlinearProgramWConstraint` is a child class of `NonlinearProgram`. Its constraints and cost are constructed by adding `Constraint` object, using `addNonlinearConstraint`, `addLinearConstraint` or `addCost` function.