class_docstr: Elastic metric defined by a family of second order Sobolev metrics.
  
  Each individual discrete surface is represented by a 2D-array of shape
  `[n_vertices, 3]`. See [HSKCB2022]_ for details.
  
  The parameters a0, a1, b1, c1, d1, a2 (detailed below) are non-negative weighting
  coefficients for the different terms in the metric.
  
  Parameters
  ----------
  space : DiscreteSurfaces
      Instantiated DiscreteSurfaces manifold.
  a0 : float
      First order parameter.
      Default: 1.
  a1 : float
      Stretching parameter.
      Default: 1.
  b1 : float
      Shearing parameter.
      Default: 1.
  c1 : float
      Bending parameter.
      Default: 1.
  d1 : float
      Additonal first order parameter.
      Default: 1.
  a2 : float
      Second order parameter.
      Default: 1.
  
  References
  ----------
  .. [HSKCB2022] "Elastic shape analysis of surfaces with second-order
      Sobolev metrics: a comprehensive numerical framework".
      arXiv:2204.04238 [cs.CV], 25 Sep 2022
class_docstr_tok: ["Elastic","metric","defined","by","a","family","of","second","order","Sobolev","metrics",".","Each","individual","discrete","surface","is","represented","by","a","2D-array","of","shape","`","[","n_vertices",",","3","]","`",".","See","[","HSKCB2022","]","_","for","details",".","The","parameters","a0",",","a1",",","b1",",","c1",",","d1",",","a2","(","detailed","below",")","are","non-negative","weighting","coefficients","for","the","different","terms","in","the","metric",".","Parameters","--","--","--","--","--","space",":","DiscreteSurfaces","Instantiated","DiscreteSurfaces","manifold",".","a0",":","float","First","order","parameter",".","Default",":","1.","a1",":","float","Stretching","parameter",".","Default",":","1.","b1",":","float","Shearing","parameter",".","Default",":","1.","c1",":","float","Bending","parameter",".","Default",":","1.","d1",":","float","Additonal","first","order","parameter",".","Default",":","1.","a2",":","float","Second","order","parameter",".","Default",":","1",".","References","--","--","--","--","--","..","[","HSKCB2022","]","``","Elastic","shape","analysis","of","surfaces","with","second-order","Sobolev","metrics",":","a","comprehensive","numerical","framework","''",".","arXiv:2204.04238","[","cs.CV","]",",","25","Sep","2022"]
docstr: Compute the logarithm map.
  
  Parameters
  ----------
  point : array-like, shape=[..., n_vertices, 3]
      Point.
  base_point : array-like, shape=[..., n_vertices, 3]
      Base point.
  
  Returns
  -------
  tangent_vec : array-like, shape=[..., n_vertices, 3]
      Initial velocity of the geodesic starting at base_point and
      reaching point at time 1.
docstr_tok: ["Compute","the","logarithm","map",".","Parameters","--","--","--","--","--","point",":","array-like",",","shape=","[","...",",","n_vertices",",","3","]","Point",".","base_point",":","array-like",",","shape=","[","...",",","n_vertices",",","3","]","Base","point",".","Returns","--","--","--","-","tangent_vec",":","array-like",",","shape=","[","...",",","n_vertices",",","3","]","Initial","velocity","of","the","geodesic","starting","at","base_point","and","reaching","point","at","time","1","."]
code: def log(self, point, base_point):
      """Compute the logarithm map.
  
      Parameters
      ----------
      point : array-like, shape=[..., n_vertices, 3]
          Point.
      base_point : array-like, shape=[..., n_vertices, 3]
          Base point.
  
      Returns
      -------
      tangent_vec : array-like, shape=[..., n_vertices, 3]
          Initial velocity of the geodesic starting at base_point and
          reaching point at time 1.
      """
      return self.log_solver.log(self._space, point, base_point)
  
imports: import math
  import geomstats.backend
  from geomstats.geometry.euclidean import Euclidean
  from geomstats.geometry.manifold import Manifold
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.numerics.optimizers import ScipyMinimize
label_desc: Use image node_id 12 for calling the ElasticMetric obj's underlying member method code with example usage: obj.log(point, base_point) and returns: self