sig
  type t = private { n : int; range : float array; bin : float array; }
  val check : Gsl_histo.t -> bool
  val make : int -> Gsl_histo.t
  val copy : Gsl_histo.t -> Gsl_histo.t
  external set_ranges : Gsl_histo.t -> float array -> unit
    = "ml_gsl_histogram_set_ranges"
  external set_ranges_uniform :
    Gsl_histo.t -> xmin:float -> xmax:float -> unit
    = "ml_gsl_histogram_set_ranges_uniform"
  external accumulate : Gsl_histo.t -> ?w:float -> float -> unit
    = "ml_gsl_histogram_accumulate"
  val get : Gsl_histo.t -> int -> float
  val get_range : Gsl_histo.t -> int -> float * float
  val h_max : Gsl_histo.t -> float
  val h_min : Gsl_histo.t -> float
  val bins : Gsl_histo.t -> int
  val reset : Gsl_histo.t -> unit
  external find : Gsl_histo.t -> float -> int = "ml_gsl_histogram_find"
  external max_val : Gsl_histo.t -> float = "ml_gsl_histogram_max_val"
  external max_bin : Gsl_histo.t -> int = "ml_gsl_histogram_max_bin"
  external min_val : Gsl_histo.t -> float = "ml_gsl_histogram_min_val"
  external min_bin : Gsl_histo.t -> int = "ml_gsl_histogram_min_bin"
  external mean : Gsl_histo.t -> float = "ml_gsl_histogram_mean"
  external sigma : Gsl_histo.t -> float = "ml_gsl_histogram_sigma"
  external sum : Gsl_histo.t -> float = "ml_gsl_histogram_sum"
  external equal_bins_p : Gsl_histo.t -> Gsl_histo.t -> bool
    = "ml_gsl_histogram_equal_bins_p"
  external add : Gsl_histo.t -> Gsl_histo.t -> unit = "ml_gsl_histogram_add"
  external sub : Gsl_histo.t -> Gsl_histo.t -> unit = "ml_gsl_histogram_sub"
  external mul : Gsl_histo.t -> Gsl_histo.t -> unit = "ml_gsl_histogram_mul"
  external div : Gsl_histo.t -> Gsl_histo.t -> unit = "ml_gsl_histogram_div"
  external scale : Gsl_histo.t -> float -> unit = "ml_gsl_histogram_scale"
  external shift : Gsl_histo.t -> float -> unit = "ml_gsl_histogram_shift"
  type histo_pdf = private {
    pdf_n : int;
    pdf_range : float array;
    pdf_sum : float array;
  }
  val init : Gsl_histo.t -> Gsl_histo.histo_pdf
  external sample : Gsl_histo.histo_pdf -> float -> float
    = "ml_gsl_histogram_pdf_sample"
end