Text this: Non linear programming theory, algorithms and applications