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