steps Input: A, b and $\stackrel{˜}{c}$ ; and 𝒟 is non-empty and P0 is inside 𝒟 Output: OptPt & OptVal 0 Construct the Facet Tableau $\left[\tau \right]$ from A, b and $\stackrel{˜}{c}$ $P={P}_{0}$ ; ${g}_{0}=-b$ 1 ${d}_{j}={P}^{\text{T}}{\tau }_{j}-{c}_{j}$ for $j=1,\cdots ,m+n$ } 2 $\sigma =\left\{j||{d}_{j}|<\delta \right\}$ ; % δ is a small constant ${\sigma }^{*}=\sigma$ ; % ${\sigma }^{*}$ is set of blocking facet 3 while (true) 4 if $\sigma \ne \varphi$ % compute $g,g{↓}_{{\sigma }_{j}^{c}}$ and update ${\sigma }^{*}$ $\left[g,g{↓}_{{\sigma }_{j}^{c}},{\sigma }^{*}\right]$ = Gradient Select( ${g}_{0},\sigma ,\left[\tau \right],P,c$ ) else $g={g}_{0}$ 5 if $|{\sigma }^{*}|==m$ $OptPt=P;OptVal={P}^{\text{T}}b$ ; return (OptPt, OptVal) else $\sigma ={\sigma }^{*}$ 6 ${t}_{j}=\frac{{c}_{j}{P}^{\text{T}}{\tau }_{j}}{{g}^{\text{T}}{\tau }_{j}}$ ; for $j\in \left\{1,2,\cdots ,m+n\right\}\\sigma$ ${j}^{*}=\mathrm{arg}{\mathrm{min}}_{j}\left\{{t}_{j}|{t}_{j}>0\right\}$ ; $Q=P+{t}_{{j}^{*}}g$ ; $P=Q$ 7 $\sigma ={\sigma }^{*}\cup \left\{i||{t}_{i}-{t}_{{j}^{*}}|<ϵ\right\}$ % update blocking facets 8 end