def init_condition(self, r, x0):
     if x0 is None:
         x0 = ManifoldElement.rand(self.target_matrix.shape, r, norm=self.norm_bound)
     self.x = ManifoldElement(x0, r)
     self.grad = -TangentVector(
         self.x, riemannian_grad_partial(self.x, self.target_matrix, self.sigma_set, manifold_elems=True)
     )
     return None
 def init_condition(self, r, x0):
     if x0 is None:
         x0 = ManifoldElement.rand(self.target_matrix.shape, r, norm=self.norm_bound)
     self.x_prev, self.x = ManifoldElement(x0, r), ManifoldElement(x0, r)
     self.delta = delta_on_sigma_set(self.x, self.target_matrix, self.sigma_set)
     self.grad_partial = riemannian_grad_partial(self.x, self.target_matrix, self.sigma_set,
                                                 grad=self.delta, manifold_elems=True)
     self.grad = -TangentVector(self.x, self.grad_partial)
     self.grad_prev = self.grad
     self.conj_prev, self.conj = TangentVector.zero(self.x), TangentVector.zero(self.x)
     return None