sig
  type t
  type kind = LMSDER | LMDER
  val make :
    Gsl_multifit_nlin.kind ->
    n:int ->
    p:int ->
    Gsl_fun.multi_fun_fdf -> Gsl_vector.vector -> Gsl_multifit_nlin.t
  external name : Gsl_multifit_nlin.t -> string
    = "ml_gsl_multifit_fdfsolver_name"
  external iterate : Gsl_multifit_nlin.t -> unit
    = "ml_gsl_multifit_fdfsolver_iterate"
  external position : Gsl_multifit_nlin.t -> Gsl_vector.vector -> unit
    = "ml_gsl_multifit_fdfsolver_position"
  external get_state :
    Gsl_multifit_nlin.t ->
    ?x:Gsl_vector.vector ->
    ?f:Gsl_vector.vector -> ?dx:Gsl_vector.vector -> unit -> unit
    = "ml_gsl_multifit_fdfsolver_get_state"
  external test_delta :
    Gsl_multifit_nlin.t -> epsabs:float -> epsrel:float -> bool
    = "ml_gsl_multifit_test_delta"
  external test_gradient :
    Gsl_multifit_nlin.t -> epsabs:float -> Gsl_vector.vector -> bool
    = "ml_gsl_multifit_test_gradient"
  external covar :
    Gsl_multifit_nlin.t -> epsrel:float -> Gsl_matrix.matrix -> unit
    = "ml_gsl_multifit_covar"
end