let choose_nbones c_n cstrs k k' =
  match samplers c_n cstrs with
  | [] -> assert false
  | p_n :: samplers_c_n ->
      assert (List.for_all (fun p'_n -> size p_n.u = size p'_n.u) samplers_c_n);
      assert (List.for_all (fun p'_n -> size p_n.v = size p'_n.v) samplers_c_n);
      let nbones_c_n_u = size p_n.u + k * size p_n.v in
      let nbones_c_n_v = k' * size p_n.v in
      (nbones_c_n_u, nbones_c_n_v)