class_docstr: Geodesic boundary value problem solver using shooting.
  
  Parameters
  ----------
  optimizer : ScipyMinimize
      Instance of ScipyMinimize.
  initialization : callable
      Function to provide initial solution. `f(space, point, base_point)`.
      Defaults to linear initialization.
  flatten : bool
      If True, the optimization problem is solved together for all the points.
class_docstr_tok: ["Geodesic","boundary","value","problem","solver","using","shooting",".","Parameters","--","--","--","--","--","optimizer",":","ScipyMinimize","Instance","of","ScipyMinimize",".","initialization",":","callable","Function","to","provide","initial","solution",".","`","f","(","space",",","point",",","base_point",")","`",".","Defaults","to","linear","initialization",".","flatten",":","bool","If","True",",","the","optimization","problem","is","solved","together","for","all","the","points","."]
docstr: Instantiate a log shooting solver.
code: def __new__(cls, optimizer=None, initialization=None, flatten=True):
      """Instantiate a log shooting solver."""
      if flatten:
          return _LogShootingSolverFlatten(
              optimizer=optimizer,
              initialization=initialization,
          )
  
      return _LogShootingSolverUnflatten(
          optimizer=optimizer,
          initialization=initialization,
      )
  
imports: import math
  from abc import ABC, abstractmethod
  import geomstats.backend
  from geomstats.numerics.bvp import ScipySolveBVP
  from geomstats.numerics.ivp import GSIVPIntegrator
  from geomstats.numerics.optimizers import ScipyMinimize
  from geomstats.vectorization import get_batch_shape
label_desc: Use image node_id 1 for calling the LogShootingSolver obj's underlying member method code with example usage: obj.__new__(cls, optimizer, initialization, flatten) and returns: _LogShootingSolverUnflatten, _LogShootingSolverFlatten