Primal-dual interior point solver for linear programs