class_docstr: A composed diffeomorphism.
  
  Parameters
  ----------
  diffeos : list[Diffeo]
      An (ordered) list of diffeomorphisms.
docstr: Tangent diffeomorphism at base point.
docstr_tok: ["Tangent","diffeomorphism","at","base","point","."]
code: def tangent_diffeomorphism(
      self, tangent_vec, base_point=None, image_point=None
  ):
      """Tangent diffeomorphism at base point."""
      if base_point is None:
          base_point = self.inverse_diffeomorphism(image_point)
  
      for diffeo in self.diffeos:
          image_point = diffeo.diffeomorphism(base_point)
          image_tangent_vec = diffeo.tangent_diffeomorphism(
              tangent_vec,
              base_point=base_point,
              image_point=image_point,
          )
          tangent_vec = image_tangent_vec
          base_point = image_point
  
      return image_tangent_vec
  
imports: import abc
  import math
  import geomstats.backend
  from geomstats.vectorization import get_batch_shape
label_desc: Use image node_id 4 for calling the ComposedDiffeo obj's underlying member method code with example usage: obj.tangent_diffeomorphism(tangent_vec, base_point, image_point) and returns: image_tangent_vec