sig
  type kind = HYBRIDSJ | HYBRIDJ | NEWTON | GNEWTON
  type t
  val make :
    Multiroot.Deriv.kind ->
    int -> Fun.multi_fun_fdf -> Vector.vector -> Multiroot.Deriv.t
  external name : Multiroot.Deriv.t -> string
    = "ml_gsl_multiroot_fdfsolver_name"
  external iterate : Multiroot.Deriv.t -> unit
    = "ml_gsl_multiroot_fdfsolver_iterate"
  external root : Multiroot.Deriv.t -> Vector.vector -> unit
    = "ml_gsl_multiroot_fdfsolver_root"
  external get_state :
    Multiroot.Deriv.t ->
    ?x:Vector.vector ->
    ?f:Vector.vector -> ?j:Matrix.matrix -> ?dx:Vector.vector -> unit -> unit
    = "ml_gsl_multiroot_fdfsolver_get_state_bc"
    "ml_gsl_multiroot_fdfsolver_get_state"
  external test_delta :
    Multiroot.Deriv.t -> epsabs:float -> epsrel:float -> bool
    = "ml_gsl_multiroot_test_delta_fdf"
  external test_residual : Multiroot.Deriv.t -> epsabs:float -> bool
    = "ml_gsl_multiroot_test_residual_fdf"
end