class_docstr: Abstract class for ode ivp solvers.
  
  Parameters
  ----------
  save_result : bool
      If True, result is stored after calling `integrate` or `integrate_t`.
  state_is_raveled : bool
      If True, state is represented by a 1d array.
      Else, it is represented by `(n_vars, dim)`.
  tfirst : bool
      Declares function signature.
      If True `f(t, y)`, else `f(y, t)`.
docstr: Integrate force.
  
  Parameters
  ----------
  force : callable
      Function to integrate.
  initial_state : array-like
      Initial state.
  end_time : float or None
      Integration end time.
  
  Returns
  -------
  result : OdeResult
docstr_tok: ["Integrate","force",".","Parameters","--","--","--","--","--","force",":","callable","Function","to","integrate",".","initial_state",":","array-like","Initial","state",".","end_time",":","float","or","None","Integration","end","time",".","Returns","--","--","--","-","result",":","OdeResult"]
code: def integrate(self, force, initial_state, end_time):
      """Integrate force.
  
      Parameters
      ----------
      force : callable
          Function to integrate.
      initial_state : array-like
          Initial state.
      end_time : float or None
          Integration end time.
  
      Returns
      -------
      result : OdeResult
      """
  
imports: from abc import ABC, abstractmethod
  import scipy
  import geomstats.backend
  import geomstats.integrator
  from geomstats.errors import check_parameter_accepted_values
  from geomstats.numerics._common import result_to_backend_type
label_desc: Use image node_id 2 for calling the ODEIVPSolver obj's underlying member method code with example usage: obj.integrate(force, initial_state, end_time) without return types