Optimization Algorithms On Riemannian Manifolds With Applications