(* gsl-ocaml - OCaml interface to GSL                       *)
(* Copyright (©) 2002-2012 - Olivier Andrieu                *)
(* Distributed under the terms of the GPL version 3         *)

let () = Error.init ()

type linear_fit_coeffs = {
  c0 : float;
  c1 : float;
  cov00 : float;
  cov01 : float;
  cov11 : float;
  sumsq : float;
}

external linear :
  ?weight:float array -> float array -> float array -> linear_fit_coeffs
  = "ml_gsl_fit_linear"

external linear_est : float -> coeffs:linear_fit_coeffs -> Fun.result
  = "ml_gsl_fit_linear_est"

type mul_fit_coeffs = { m_c1 : float; m_cov11 : float; m_sumsq : float }

external mul :
  ?weight:float array -> float array -> float array -> mul_fit_coeffs
  = "ml_gsl_fit_mul"

external mul_est : float -> coeffs:mul_fit_coeffs -> Fun.result
  = "ml_gsl_fit_mul_est"
