Linearly constrained optimization