sig
  type 'd bquadrhsfn_args = { t : float; y : 'd; yb : 'd; }
  type 'd bquadrhsfn_no_sens =
      'Cvodes.Adjoint.Quadrature.bquadrhsfn_args -> '-> unit
  type 'd bquadrhsfn_with_sens =
      'Cvodes.Adjoint.Quadrature.bquadrhsfn_args -> 'd array -> '-> unit
  type 'd bquadrhsfn =
      NoSens of 'Cvodes.Adjoint.Quadrature.bquadrhsfn_no_sens
    | WithSens of 'Cvodes.Adjoint.Quadrature.bquadrhsfn_with_sens
  val init :
    ('d, 'k) Cvodes.Adjoint.bsession ->
    'Cvodes.Adjoint.Quadrature.bquadrhsfn -> ('d, 'k) Nvector.t -> unit
  val reinit : ('d, 'k) Cvodes.Adjoint.bsession -> ('d, 'k) Nvector.t -> unit
  type ('d, 'k) tolerance =
      NoStepSizeControl
    | SStolerances of float * float
    | SVtolerances of float * ('d, 'k) Nvector.t
  val set_tolerances :
    ('d, 'k) Cvodes.Adjoint.bsession ->
    ('d, 'k) Cvodes.Adjoint.Quadrature.tolerance -> unit
  val get : ('d, 'k) Cvodes.Adjoint.bsession -> ('d, 'k) Nvector.t -> float
  val get_num_rhs_evals : ('d, 'k) Cvodes.Adjoint.bsession -> int
  val get_num_err_test_fails : ('d, 'k) Cvodes.Adjoint.bsession -> int
  val get_err_weights :
    ('d, 'k) Cvodes.Adjoint.bsession -> ('d, 'k) Nvector.t -> unit
  val get_stats : ('d, 'k) Cvodes.Adjoint.bsession -> int * int
end