1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
let () = Error.init ()
type result = {
res : float ;
err : float ; }
type result_e10 = {
res_e10 : float ;
err_e10 : float ;
e10 : int ;
}
type mode =
| DOUBLE
| SIMPLE
| APPROX
external smash : result_e10 -> result
= "ml_gsl_sf_result_smash_e"
type gsl_fun = float -> float
type gsl_fun_fdf = {
f : float -> float ;
df : float -> float ;
fdf : float -> float * float ;
}
type monte_fun = float array -> float
open Vector
type multi_fun = x:vector -> f:vector -> unit
type multi_fun_fdf = {
multi_f : x:vector -> f:vector -> unit ;
multi_df : x:vector -> j:Matrix.matrix -> unit ;
multi_fdf : x:vector -> f:vector -> j:Matrix.matrix -> unit ;
}
type multim_fun = x:vector -> float
type multim_fun_fdf = {
multim_f : x:vector -> float ;
multim_df : x:vector -> g:vector -> unit ;
multim_fdf : x:vector -> g:vector -> float ;
}