You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: simplex.m
    path of file: ./repos/opt_matlab/第6章/例6.1
    
    the code of the file until where you have to start completion: function [xsol, fval, lambda, exitflag, output, basicVarIdx, nonbasicVarIdx, delrows] = simplex(c, Ale, ble, ...
                     Aeq, beq, lb, ub, options, defaultopt, computeLambda)
%SIMPLEX Simplex method for general linear programming problem.
%               min  c' * x 
%        subject to  Ale * x <= ble; 
%                    Aeq * x  = beq; 
%                    lb <= x <= ub.
%
%   XSOL = SIMPLEX(c,A,b,Aeq,beq) solves the problem above while 
%   additionally satisfying the equality constraints Aeq * xsol = beq.
%
%   XSOL = SIMPLEX(c,A,b,Aeq,beq,LB,UB) defines a set of lower and upper 
%   bounds on the design variables, XSOL, so that the solution XSOL is always in the
%   range LB <= XSOL <= UB.  If LB is [] or if any of the entries in LB are
%   -Inf, that is taken to mean the corresponding variable is not bounded below.
%   If UB is [] or if any of the entries in UB are Inf, that is taken to mean
%   the corresponding variable is not bounded above.
%
%   XSOL = SIMPLEX(c,A,b,Aeq,beq,LB,UB,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.
%   Used options are Display, TolFun, LargeScale, MaxIter. Use OPTIONS = [] as
%   a place holder if no options are set.
%
%   [XSOL,FVAL] = SIMPLEX(c,A,b) returns the value of the objective
%   function at XSOL: FVAL = c' * XSOL.
%
%   [XSOL,FVAL,LAMBDA] = SIMPLEX(c,A,b) returns the set of Lagrange multipliers,
%   LAMBDA, at the solution, XSOL.
%   LAMBDA.ineqlin are the Lagrange multipliers for the inequalities.
%   LAMBDA.eqlin are the Lagrange multipliers for the equalities.
%   LAMBDA.lb the Lagrange multipliers for the lower bounds.
%   LAMBDA.ub are the Lagrange multipliers for the upper bounds.
%
%   [XSOL,FVAL,LAMBDA,EXITFLAG] = SIMPLEX(c,A,b) describes the exit conditions:
%   If EXITFLAG is:

    
function [xsol, fval, lambda, exitflag, output, basicVarIdx, nonbasicVarIdx, delrows] = simplex(c, Ale, ble, ...
                     Aeq, beq, lb, ub, options, defaultopt, computeLambda)
%SIMPLEX Simplex method for general linear programming problem.
%               min  c' * x 
%        subject to  Ale * x <= ble; 
%                    Aeq * x  = beq; 
%                    lb <= x <= ub.
%
%   XSOL = SIMPLEX(c,A,b,Aeq,beq) solves the problem above while 
%   additionally satisfying the equality constraints Aeq * xsol = beq.
%
%   XSOL = SIMPLEX(c,A,b,Aeq,beq,LB,UB) defines a set of lower and upper 
%   bounds on the design variables, XSOL, so that the solution XSOL is always in the
%   range LB <= XSOL <= UB.  If LB is [] or if any of the entries in LB are
%   -Inf, that is taken to mean the corresponding variable is not bounded below.
%   If UB is [] or if any of the entries in UB are Inf, that is taken to mean
%   the corresponding variable is not bounded above.
%
%   XSOL = SIMPLEX(c,A,b,Aeq,beq,LB,UB,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.
%   Used options are Display, TolFun, LargeScale, MaxIter. Use OPTIONS = [] as
%   a place holder if no options are set.
%
%   [XSOL,FVAL] = SIMPLEX(c,A,b) returns the value of the objective
%   function at XSOL: FVAL = c' * XSOL.
%
%   [XSOL,FVAL,LAMBDA] = SIMPLEX(c,A,b) returns the set of Lagrange multipliers,
%   LAMBDA, at the solution, XSOL.
%   LAMBDA.ineqlin are the Lagrange multipliers for the inequalities.
%   LAMBDA.eqlin are the Lagrange multipliers for the equalities.
%   LAMBDA.lb the Lagrange multipliers for the lower bounds.
%   LAMBDA.ub are the Lagrange multipliers for the upper bounds.
%
%   [XSOL,FVAL,LAMBDA,EXITFLAG] = SIMPLEX(c,A,b) describes the exit conditions:
%   If EXITFLAG is:
%      > 0 then SIMPLEX converged with a solution XSOL.
%      = 0 then SIMPLEX did not converge within the maximum number of iterations.
%      < 0 then the problem was infeasible or unbounded.
%
%   [XSOL,FVAL,LAMBDA,EXITFLAG,OUTPUT] = SIMPLEX(c,A,b) returns a structure:
%     OUTPUT.iterations: number of iterations.
%     OUTPUT.cgiterations: [].

%   Copyright 1990-2015 The MathWorks, Inc.

% Handle missing arguments
if nargin < 10  
    computeLambda = false;
end