(* Shift F5 *) let f x = (sqrt x +. log x) *. (sqrt x -. log x) let f2 x = let v1 = sqrt x and v2 = log x in (v1 +. v2) *. (v1 -. v2) let f3 x = let v1, v2 = sqrt x, log x in (v1 +. v2) *. (v1 -. v2) let g x = sqrt x +. log (sqrt x) let g2 x = let v1 = sqrt x in let v2 = log v1 in v1 +. v2 let rec fact n = if n = 0 then 1 else n * fact n let rec pow2 x = (* lineaire *) if x = 0 then 1 else 2 * pow2 (x - 1) let rec pow2_log x = (* log *) if x = 0 then 1 else let y = pow2_log (x / 2) in let c = y * y in if x mod 2 = 0 then c else c * 2