A python implementation of spectral projected gradient (SPG) method for optimizing over a (closed) convex set X (See Mark Schmidt's minConf_SPG: http://www.di.ens.fr/~mschmidt/Software/minConf.html)