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