let float_list_inner_product x y =
  fold_left (+.) 0. (map2 (fun a b -> a *. b) x y)