class_docstr: Class for the manifold of Hermitian positive definite (HPD) matrices.
  
  Parameters
  ----------
  n : int
      Integer representing the shape of the matrices: n x n.
docstr: Sample on the tangent space of HPD(n) from the uniform distribution.
  
  Parameters
  ----------
  n_samples : int
      Number of samples.
      Optional, default: 1.
  base_point : array-like, shape=[..., n, n]
      Base point of the tangent space.
  
  Returns
  -------
  samples : array-like, shape=[..., n, n]
      Points sampled in the tangent space at base_point.
docstr_tok: ["Sample","on","the","tangent","space","of","HPD","(","n",")","from","the","uniform","distribution",".","Parameters","--","--","--","--","--","n_samples",":","int","Number","of","samples",".","Optional",",","default",":","1.","base_point",":","array-like",",","shape=","[","...",",","n",",","n","]","Base","point","of","the","tangent","space",".","Returns","--","--","--","-","samples",":","array-like",",","shape=","[","...",",","n",",","n","]","Points","sampled","in","the","tangent","space","at","base_point","."]
code: def random_tangent_vec(self, base_point, n_samples=1):
      """Sample on the tangent space of HPD(n) from the uniform distribution.
  
      Parameters
      ----------
      n_samples : int
          Number of samples.
          Optional, default: 1.
      base_point : array-like, shape=[..., n, n]
          Base point of the tangent space.
  
      Returns
      -------
      samples : array-like, shape=[..., n, n]
          Points sampled in the tangent space at base_point.
      """
      n = self.n
      size = (n_samples, n, n) if n_samples != 1 else (n, n)
  
      sqrt_base_point = gs.cast(
          gs.linalg.sqrtm(base_point),
          base_point.dtype,
      )
  
      tangent_vec_at_id_aux = gs.random.rand(
          *size, dtype=gs.get_default_cdtype()
      )
      tangent_vec_at_id_aux *= 2
      tangent_vec_at_id_aux -= 1 + 1j
      tangent_vec_at_id = (
          tangent_vec_at_id_aux
          + ComplexMatrices.transconjugate(tangent_vec_at_id_aux)
      )
  
      return Matrices.mul(
          sqrt_base_point, tangent_vec_at_id, sqrt_base_point
      )
  
imports: import math
  import geomstats.backend
  from geomstats.geometry.base import ComplexVectorSpaceOpenSet
  from geomstats.geometry.complex_matrices import ComplexMatrices, ComplexMatricesMetric
  from geomstats.geometry.complex_riemannian_metric import ComplexRiemannianMetric
  from geomstats.geometry.general_linear import GeneralLinear
  from geomstats.geometry.hermitian_matrices import HermitianMatrices, expmh, powermh
  from geomstats.geometry.matrices import Matrices
  from geomstats.geometry.pullback_metric import PullbackDiffeoMetric
  from geomstats.geometry.spd_matrices import SymMatrixLog, logmh
  from geomstats.integrator import integrate
  from geomstats.vectorization import repeat_out
label_desc: Use image node_id 6 for calling the HPDMatrices obj's underlying member method code with example usage: obj.random_tangent_vec(base_point, n_samples) and returns: Matrices