Function Error Flag -- The user must supply procedures to compute the problem functions. When it is not possible to compute the functions (e.g., c(x)=ln(x) for x<0), the user can set a function error flag that will cause the algorithms to respond without aborting.
User Can Select Many Parameters -- All algorithms in the family have extensive flexibility and use a common input utility for optional parameters. However, the algorithms are easy to use because default values are set for every optional input.
Diagnostic Output -- Extensive diagnostic output can be obtained from all modules in the software family, including:
NLP line search.
Matrix sparsity patterns.
Finite Difference Gradient/Hessian.
QP iteration histories.
Linear algebra operations.
Optimal control mesh refinement.
Error Checking -- All software performs extensive checks on the user input.
Documentation -- Complete, informative documentation is supplied for all software in the SOCS family SOCS User's Guide. Software updates are reflected in document revisions.
All software in the SOCS family interfaces with C and MATLAB, for user convenience.
The computational algorithms used in the SOCS software family are described in the book Practical Methods for Optimal Control using Nonlinear Programming. Information on this book is available at the SIAM website.