  We propose an algorithm for solving nonlinear convex programs defined in
terms of a symmetric positive semidefinite matrix variable $X$. This algorithm
rests on the factorization $X=Y Y^T$, where the number of columns of Y fixes
the rank of $X$. It is thus very effective for solving programs that have a low
rank solution. The factorization $X=Y Y^T$ evokes a reformulation of the
original problem as an optimization on a particular quotient manifold. The
present paper discusses the geometry of that manifold and derives a second
order optimization method. It furthermore provides some conditions on the rank
of the factorization to ensure equivalence with the original problem. The
efficiency of the proposed algorithm is illustrated on two applications: the
maximal cut of a graph and the sparse principal component analysis problem.
