Averages/Root mean square: Difference between revisions

Content added Content deleted
(rms in ocaml)
Line 75: Line 75:


<lang ocaml>let rms a = let n = Array.length a in
<lang ocaml>let rms a = let n = Array.length a in
let rec g s = function 0 -> s | i -> g (s +. a.(i-1)*.a.(i-1)) (i-1) in
let f s x = s +. x*.x in
sqrt ((g 0.0 n) /. (float_of_int n));;
sqrt (Array.fold_left f 0.0 a /. float_of_int n);;


rms (Array.init 10 (function i -> (float_of_int (i+1))));;
rms (Array.init 10 (fun i -> float_of_int (i+1)));;
(* 6.2048368229954285 *)</lang>
(* 6.2048368229954285 *)</lang>