let compute () =
  match case_of_optimization 
    (Wp_parameters.LogicVar.get ()) (Wp_parameters.RefVar.get()) with 
      | Nothing -> ()
      | Half ->
          if not_half_computed() then 
          (debug
            "[COMPUTE] DO address taken table computing";
           compute_logic_params ())
          else ()
      | All ->
          if not_computed () then 
          begin
            debug "[COMPUTE] DO all table computation";
            compute_calls_collection (); 
            debug "[COMPUTE] DONE all table computation";
            debug "[COMPUTE] DO resolution of formals calls";
            resolved_call_chain_param (); 
            debug 
              "[COMPUTE] DONE resolution of formals calls";
            debug 
              "[COMPUTE] DO resolution of arguments chain calls";
            resolved_call_chain_arg (); 
            debug 
              "[COMPUTE] DONE resolution of arguments chain calls";
            debug 
              "[COMPUTE] resolved address taken equation"
            resolve_addr_taken ()
          end            
          else ()