  The von Neumann algorithm is a simple coordinate-descent algorithm to
determine whether the origin belongs to a polytope generated by a finite set of
points. When the origin is in the of the polytope, the algorithm generates a
sequence of points in the polytope that converges linearly to zero. The
algorithm's rate of convergence depends on the radius of the largest ball
around the origin contained in the polytope.
  We show that under the weaker condition that the origin is in the polytope,
possibly on its boundary, a variant of the von Neumann algorithm that includes
generates a sequence of points in the polytope that converges linearly to zero.
The new algorithm's rate of convergence depends on a certain geometric
parameter of the polytope that extends the above radius but is always positive.
Our linear convergence result and geometric insights also extend to a variant
of the Frank-Wolfe algorithm with away steps for minimizing a strongly convex
function over a polytope.
