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
type distance = (float[@satisfying fun f -> f >=. 0.])
(** solve a b c returns the list of the solutions for ax² + bx + c = 0 *)
let solve a b c =
let delta = (b *. b) -. (4. *. a *. c) in
if delta < 0. then []
else
let racine_delta = sqrt delta in
let sol1 = (-.b -. racine_delta) /. (2. *. a) in
if delta = 0. then [sol1]
else
let sol2 = (-.b +. racine_delta) /. (2. *. a) in
[sol1; sol2]
(** float sum from i to n, f(i) *)
let float_sum i n f =
let res = ref 0. in
for cpt = i to n do
res := !res +. f cpt
done ;
!res
(** integer sum from i to n, f(i) *)
let int_sum i n f =
let res = ref 0 in
for cpt = i to n do
res := !res + f cpt
done ;
!res
let pi = 4.0 *. atan 1.
let deg_to_rad = 0.0174533