matrices and vectors in the $k$th iteration are then denoted by $\A_{B^k}$, $\A_{N^k}$, $\c_{B^k}$, $\c_{N^k}$, $\x_{B^k}$, $\x_{N^k}$, $\s_{B^k}$, and $\s_{N^k}$, where $\x^k=[\x_{B^k},\x_{N^k}]$ is the basic feasible solution of (\[LP\]) with $\x_{B^k} > \0$ and $\x_{N^k}= \0$. It is worthwhile to note that the partition of $(B^k,N^k)$ keeps updating and it is different from the partition $(B^*,N^*)$ before an optimizer is found. Let $$\bar{\c}_{N^k}^{\Tr} =( \c_{N^k} - \A_{N^k}^{\Tr} 
\A_{B^k}^{-\Tr} \c_{B^k} )^{\Tr}
\label{cNbar}$$ be the reduced cost vector. Clearly, if $\bar{\c}_{N^k} \ge \0$, an optimizer is found; if $\bar{c}_{j^k} <0$ for some $j^k \in N^k$, then the entering variable $x_{\jmath^k}$ in the next vertex is chosen from the set of $\{ j^k ~|~ \bar{c}_{j^k} <0 \}$ because by increasing $x_{\jmath^k}$, the objective function $\c^{\Tr} \x=\c_{B^k}^{\T}\x_{B^k}+\bar{c}_{\jmath^k}x_{\jmath^k}$ will be reduced. Many different ways have been developed for the selection of the entering variable $x_{\jmath^k}$ under the constraint: $$\jmath^k \in \{ j^k ~|~ \bar{c}_{j^k} <0 \}.$$ Once the entering variable is selected, existing pivot rules determine the leaving variable using the following method: Denote $\bar{\b} = \A_{B^k}^{-1} \b$ and $\bar{\a}_{\jmath^k} = \A_{B^k}^{-1} \A_{\jmath^k}$, $\jmath^k \in N^k$ corresponding to the entering variable, the leaving variable $x_{\imath}$, ${\imath} \in B^k$, is determined by the following condition. $$\begin{aligned}
