let w = function
  p -> let
         lfp = (List.map (function_of_poly)) (sturm_chain (p))
         and
         f = function lf, x -> (List.map (function f -> f (x))) (lf)
       in
         function r -> nb_chang (f (lfp, r))