class_docstr: Class for Riemannian and pseudo-Riemannian metrics for Complex manifolds.
  
  The associated Levi-Civita connection on the tangent bundle.
class_docstr_tok: ["Class","for","Riemannian","and","pseudo-Riemannian","metrics","for","Complex","manifolds",".","The","associated","Levi-Civita","connection","on","the","tangent","bundle","."]
docstr: Generate a random unit tangent vector at a given point.
  
  Parameters
  ----------
  base_point : array-like, shape=[..., dim]
      Point.
  n_vectors : float
      Number of vectors to be generated at base_point.
      For vectorization purposes n_vectors can be greater than 1 iff
      base_point consists of a single point.
  
  Returns
  -------
  normalized_vector : array-like, shape=[..., n_vectors, dim]
      Random unit tangent vector at base_point.
docstr_tok: ["Generate","a","random","unit","tangent","vector","at","a","given","point",".","Parameters","--","--","--","--","--","base_point",":","array-like",",","shape=","[","...",",","dim","]","Point",".","n_vectors",":","float","Number","of","vectors","to","be","generated","at","base_point",".","For","vectorization","purposes","n_vectors","can","be","greater","than","1","iff","base_point","consists","of","a","single","point",".","Returns","--","--","--","-","normalized_vector",":","array-like",",","shape=","[","...",",","n_vectors",",","dim","]","Random","unit","tangent","vector","at","base_point","."]
code: def random_unit_tangent_vec(self, base_point, n_vectors=1):
      """Generate a random unit tangent vector at a given point.
  
      Parameters
      ----------
      base_point : array-like, shape=[..., dim]
          Point.
      n_vectors : float
          Number of vectors to be generated at base_point.
          For vectorization purposes n_vectors can be greater than 1 iff
          base_point consists of a single point.
  
      Returns
      -------
      normalized_vector : array-like, shape=[..., n_vectors, dim]
          Random unit tangent vector at base_point.
      """
      shape = base_point.shape
      if len(shape) > 1 and shape[-2] > 1 and n_vectors > 1:
          raise ValueError(
              "Several tangent vectors is only applicable to a single base point."
          )
      random_vector = gs.squeeze(
          gs.cast(
              gs.random.rand(n_vectors, *shape),
              dtype=gs.get_default_cdtype(),
          )
          + 1j
          * gs.cast(
              gs.random.rand(n_vectors, *shape),
              dtype=gs.get_default_cdtype(),
          )
      )
      normalized_vector = self.normalize(random_vector, base_point)
      return gs.squeeze(normalized_vector)
  
imports: import geomstats.backend
  from geomstats.geometry.riemannian_metric import RiemannianMetric
label_desc: Use image node_id 3 for calling the ComplexRiemannianMetric obj's underlying member method code with example usage: obj.random_unit_tangent_vec(base_point, n_vectors) and returns: gs