module Monte: sig .. end
Monte Carlo Integration
High-level interface
type kind =
val integrate : kind ->
Fun.monte_fun ->
lo:float array -> up:float array -> int -> Rng.t -> Fun.result
Low-level interface
PLAIN algorithm
type plain_state
val make_plain_state : int -> plain_state
val init_plain : plain_state -> unit
val integrate_plain : Fun.monte_fun ->
lo:float array ->
up:float array -> int -> Rng.t -> plain_state -> Fun.result
MISER algorithm
type miser_state
type miser_params = {
|
estimate_frac :float; |
|
min_calls :int; |
|
min_calls_per_bisection :int; |
|
miser_alpha :float; |
|
dither :float; |
}
val make_miser_state : int -> miser_state
val init_miser : miser_state -> unit
val integrate_miser : Fun.monte_fun ->
lo:float array ->
up:float array -> int -> Rng.t -> miser_state -> Fun.result
val get_miser_params : miser_state -> miser_params
val set_miser_params : miser_state -> miser_params -> unit
VEGAS algorithm
type vegas_state
type vegas_info = {
|
result :float; |
|
sigma :float; |
|
chisq :float; |
}
type vegas_mode =
| |
STRATIFIED |
| |
IMPORTANCE_ONLY |
| |
IMPORTANCE |
type vegas_params = {
|
vegas_alpha :float; |
|
iterations :int; |
|
stage :int; |
|
mode :vegas_mode; |
|
verbose :int; |
|
ostream :Pervasives.out_channel option; |
}
val make_vegas_state : int -> vegas_state
val init_vegas : vegas_state -> unit
val integrate_vegas : Fun.monte_fun ->
lo:float array ->
up:float array -> int -> Rng.t -> vegas_state -> Fun.result
val get_vegas_info : vegas_state -> vegas_info
val get_vegas_params : vegas_state -> vegas_params
val set_vegas_params : vegas_state -> vegas_params -> unit