sig
  type 'd quadsensrhsfn_args = {
    t : float;
    y : 'd;
    s : 'd array;
    yq' : 'd;
    tmp : 'Cvode.double;
  }
  type 'd quadsensrhsfn =
      'Cvodes.Sensitivity.Quadrature.quadsensrhsfn_args -> 'd array -> unit
  val init :
    ('d, 'k) Cvode.session ->
    ?fqs:'Cvodes.Sensitivity.Quadrature.quadsensrhsfn ->
    ('d, 'k) Nvector.t array -> unit
  val reinit : ('d, 'k) Cvode.session -> ('d, 'k) Nvector.t array -> unit
  type ('d, 'k) tolerance =
      NoStepSizeControl
    | SStolerances of float * Sundials.RealArray.t
    | SVtolerances of float * ('d, 'k) Nvector.t array
    | EEtolerances
  val set_tolerances :
    ('d, 'k) Cvode.session ->
    ('d, 'k) Cvodes.Sensitivity.Quadrature.tolerance -> unit
  val get : ('d, 'k) Cvode.session -> ('d, 'k) Nvector.t array -> float
  val get1 : ('d, 'k) Cvode.session -> ('d, 'k) Nvector.t -> int -> float
  val get_dky :
    ('d, 'k) Cvode.session ->
    ('d, 'k) Nvector.t array -> float -> int -> unit
  val get_dky1 :
    ('d, 'k) Cvode.session ->
    ('d, 'k) Nvector.t -> float -> int -> int -> unit
  val get_num_rhs_evals : ('d, 'k) Cvode.session -> int
  val get_num_err_test_fails : ('d, 'k) Cvode.session -> int
  val get_err_weights :
    ('d, 'k) Cvode.session -> ('d, 'k) Nvector.t array -> unit
  val get_stats : ('d, 'k) Cvode.session -> int * int
  exception QuadSensNotInitialized
  exception QuadSensRhsFuncFailure
  exception FirstQuadSensRhsFuncFailure
  exception RepeatedQuadSensRhsFuncFailure
  exception UnrecoverableQuadSensRhsFuncFailure
end