LINPROG     Linear programming.                   
    X=LINPROG(f,A,b) solves the linear programming problem:
         
             min f'*x    subject to:   A*x <= b 
              x
 
    X=LINPROG(f,A,b,Aeq,beq) solves the problem above while additionally
    satisfying the equality constraints Aeq*x = beq.
    
    X=LINPROG(f,A,b,Aeq,beq,LB,UB) defines a set of lower and upper
    bounds on the design variables, X, so that the solution is in
    the range LB <= X <= UB.  Use empty matrices for LB and UB
    if no bounds exist. Set LB(i) = -Inf if X(i) is unbounded below; 
    set UB(i) = Inf if X(i) is unbounded above.
 
    X=LINPROG(f,A,b,Aeq,beq,LB,UB,X0) sets the starting point to X0.  This
    option is only available with the active-set algorithm.  The default
    interior point algorithm will ignore any non-empty starting point.
 
    X=LINPROG(f,A,b,Aeq,Beq,LB,UB,X0,OPTIONS) minimizes with the default 
    optimization parameters replaced by values in the structure OPTIONS, an 
    argument created with the OPTIMSET function.  See OPTIMSET for details.  
    Use options are Display, Diagnostics, TolFun, LargeScale, MaxIter. 
    Currently, only 'final' and 'off' are valid values for the parameter 
    Display when LargeScale is 'off' ('iter' is valid when LargeScale is 'on').
 
    [X,FVAL]=LINPROG(f,A,b) returns the value of the objective function at X:
    FVAL = f'*X.
 
    [X,FVAL,EXITFLAG] = LINPROG(f,A,b) returns EXITFLAG that 
    describes the exit condition of LINPROG.
    If EXITFLAG is:
       > 0 then LINPROG converged with a solution X.
       0   then LINPROG reached the maximum number of iterations without converging.
       < 0 then the problem was infeasible or LINPROG failed.
 
    [X,FVAL,EXITFLAG,OUTPUT] = LINPROG(f,A,b) returns a structure
    OUTPUT with the number of iterations taken in OUTPUT.iterations, the type
    of algorithm used in OUTPUT.algorithm, the number of conjugate gradient
    iterations (if used) in OUTPUT.cgiterations.
 
    [X,FVAL,EXITFLAG,OUTPUT,LAMBDA]=LINPROG(f,A,b) returns the set of 
    Lagrangian multipliers LAMBDA, at the solution: LAMBDA.ineqlin for the 
    linear inequalities A, LAMBDA.eqlin for the linear equalities Aeq, 
    LAMBDA.lower for LB, and LAMBDA.upper for UB.
    
    NOTE: the LargeScale (the default) version of LINPROG uses a primal-dual
          method. Both the primal problem and the dual problem must be feasible 
          for convergence. Infeasibility messages of either the primal or dual, 
          or both, are given as appropriate.  The primal problem in standard 
          form is 
               min f'*x such that A*x = b, x >= 0.
          The dual problem is
               max b'*y such that A'*y + s = f, s >= 0.