sig
  type kind = HYBRIDS | HYBRID | DNEWTON | BROYDEN
  type t
  val make :
    Multiroot.NoDeriv.kind ->
    int -> Fun.multi_fun -> Vector.vector -> Multiroot.NoDeriv.t
  external name : Multiroot.NoDeriv.t -> string
    = "ml_gsl_multiroot_fsolver_name"
  external iterate : Multiroot.NoDeriv.t -> unit
    = "ml_gsl_multiroot_fsolver_iterate"
  external root : Multiroot.NoDeriv.t -> Vector.vector -> unit
    = "ml_gsl_multiroot_fsolver_root"
  external get_state :
    Multiroot.NoDeriv.t ->
    ?x:Vector.vector -> ?f:Vector.vector -> ?dx:Vector.vector -> unit -> unit
    = "ml_gsl_multiroot_fsolver_get_state"
  external test_delta :
    Multiroot.NoDeriv.t -> epsabs:float -> epsrel:float -> bool
    = "ml_gsl_multiroot_test_delta_f"
  external test_residual : Multiroot.NoDeriv.t -> epsabs:float -> bool
    = "ml_gsl_multiroot_test_residual_f"
end