Princeton Optimization Algorithms on Matrix Manifolds