class_docstr: Class for the Siegel metric.
class_docstr_tok: ["Class","for","the","Siegel","metric","."]
docstr: Compute the Siegel exponential map at zero.
  
  Compute the exponential map at zero (null matrix) of tangent_vec.
  
  Parameters
  ----------
  tangent_vec : array-like, shape=[..., n, n]
      Tangent vector at base point.
  
  Returns
  -------
  exp : array-like, shape=[..., n, n]
      Point on the manifold.
docstr_tok: ["Compute","the","Siegel","exponential","map","at","zero",".","Compute","the","exponential","map","at","zero","(","null","matrix",")","of","tangent_vec",".","Parameters","--","--","--","--","--","tangent_vec",":","array-like",",","shape=","[","...",",","n",",","n","]","Tangent","vector","at","base","point",".","Returns","--","--","--","-","exp",":","array-like",",","shape=","[","...",",","n",",","n","]","Point","on","the","manifold","."]
code: def exp_at_zero(tangent_vec):
      """Compute the Siegel exponential map at zero.
  
      Compute the exponential map at zero (null matrix) of tangent_vec.
  
      Parameters
      ----------
      tangent_vec : array-like, shape=[..., n, n]
          Tangent vector at base point.
  
      Returns
      -------
      exp : array-like, shape=[..., n, n]
          Point on the manifold.
      """
      identity = _create_identity_mat(
          tangent_vec.shape, dtype=tangent_vec.dtype
      )
      tangent_vec_transconj = ComplexMatrices.transconjugate(
          tangent_vec
      )
      aux_1 = gs.matmul(tangent_vec, tangent_vec_transconj)
      aux_2 = powermh(aux_1, 1 / 2)
      aux_3 = expmh(2 * aux_2)
      factor_1 = aux_3 - identity
      aux_4 = aux_3 + identity
      factor_2 = powermh(aux_4, -1)
      factor_3 = powermh(aux_2, -1)
      factor_3 = gs.where(
          gs.isnan(factor_3), gs.zeros_like(factor_2), factor_3
      )
      prod_1 = gs.matmul(factor_1, factor_2)
      prod_2 = gs.matmul(prod_1, factor_3)
      return gs.matmul(prod_2, tangent_vec)
  
imports: import geomstats.backend
  from geomstats.geometry.base import ComplexVectorSpaceOpenSet
  from geomstats.geometry.complex_matrices import ComplexMatrices
  from geomstats.geometry.complex_riemannian_metric import ComplexRiemannianMetric
  from geomstats.geometry.hermitian_matrices import expmh, powermh
  from geomstats.geometry.matrices import Matrices
label_desc: Use image node_id 3 for calling the SiegelMetric obj's underlying member method code with example usage: obj.exp_at_zero(tangent_vec) and returns: gs