sig
  type ws
  val make : n:int -> p:int -> Gsl_multifit.ws
  external _linear :
    ?weight:Gsl_vectmat.vec ->
    x:Gsl_vectmat.mat ->
    y:Gsl_vectmat.vec ->
    c:Gsl_vectmat.vec -> cov:Gsl_vectmat.mat -> Gsl_multifit.ws -> float
    = "ml_gsl_multifit_linear_bc" "ml_gsl_multifit_linear"
  external _linear_svd :
    ?weight:Gsl_vectmat.vec ->
    x:Gsl_vectmat.mat ->
    y:Gsl_vectmat.vec ->
    tol:float ->
    c:Gsl_vectmat.vec ->
    cov:Gsl_vectmat.mat -> Gsl_multifit.ws -> int * float
    = "ml_gsl_multifit_linear_svd_bc" "ml_gsl_multifit_linear_svd"
  val linear :
    ?weight:Gsl_vectmat.vec ->
    Gsl_vectmat.mat ->
    Gsl_vectmat.vec -> Gsl_vector.vector * Gsl_matrix.matrix * float
  external linear_est :
    x:Gsl_vectmat.vec ->
    c:Gsl_vectmat.vec -> cov:Gsl_vectmat.mat -> Gsl_fun.result
    = "ml_gsl_multifit_linear_est"
  val fit_poly :
    ?weight:float array ->
    x:float array ->
    y:float array -> int -> float array * float array array * float
end