@proxify<EOL>def simplex(x, rho):
<EOL>u = np.flipud(np.sort(x.ravel()))<EOL>lambdas = (<NUM_LIT:1> - np.cumsum(u)) / (<NUM_LIT:1.> + np.arange(u.size))<EOL>ix = np.where(u + lambdas > <NUM_LIT:0>)[<NUM_LIT:0>].max()<EOL>return np.maximum(x + lambdas[ix], <NUM_LIT:0>)<EOL>
Projection onto the probability simplex

http://arxiv.org/pdf/1309.1541v1.pdf