sig
type system
val make_system :
(float -> float array -> float array -> unit) ->
?jac:(float -> float array -> Matrix.matrix -> float array -> unit) ->
int -> Odeiv.system
type step
type step_kind =
RK2
| RK4
| RKF45
| RKCK
| RK8PD
| RK2IMP
| RK2SIMP
| RK4IMP
| BSIMP
| GEAR1
| GEAR2
val make_step : Odeiv.step_kind -> dim:int -> Odeiv.step
external step_reset : Odeiv.step -> unit = "ml_gsl_odeiv_step_reset"
external step_name : Odeiv.step -> string = "ml_gsl_odeiv_step_name"
external step_order : Odeiv.step -> int = "ml_gsl_odeiv_step_order"
external step_apply :
Odeiv.step ->
t:float ->
h:float ->
y:float array ->
yerr:float array ->
?dydt_in:float array -> ?dydt_out:float array -> Odeiv.system -> unit
= "ml_gsl_odeiv_step_apply_bc" "ml_gsl_odeiv_step_apply"
type control
val make_control_standard_new :
eps_abs:float ->
eps_rel:float -> a_y:float -> a_dydt:float -> Odeiv.control
val make_control_y_new : eps_abs:float -> eps_rel:float -> Odeiv.control
val make_control_yp_new : eps_abs:float -> eps_rel:float -> Odeiv.control
val make_control_scaled_new :
eps_abs:float ->
eps_rel:float ->
a_y:float -> a_dydt:float -> scale_abs:float array -> Odeiv.control
external control_name : Odeiv.control -> string
= "ml_gsl_odeiv_control_name"
type hadjust = HADJ_DEC | HADJ_NIL | HADJ_INC
external control_hadjust :
Odeiv.control ->
Odeiv.step ->
y:float array ->
yerr:float array -> dydt:float array -> h:float -> Odeiv.hadjust * float
= "ml_gsl_odeiv_control_hadjust_bc" "ml_gsl_odeiv_control_hadjust"
type evolve
val make_evolve : int -> Odeiv.evolve
external evolve_reset : Odeiv.evolve -> unit = "ml_gsl_odeiv_evolve_reset"
external evolve_apply :
Odeiv.evolve ->
Odeiv.control ->
Odeiv.step ->
Odeiv.system ->
t:float -> t1:float -> h:float -> y:float array -> float * float
= "ml_gsl_odeiv_evolve_apply_bc" "ml_gsl_odeiv_evolve_apply"
end