http://www-math.mit.edu/~shor/18424.html