':param knowledge.Function func:  The function to analyze.'

def __init__(self, func, max_iterations=20):

    function_graph_visitor = FunctionGraphVisitor(func)
    ForwardAnalysis.__init__(self, order_jobs=True, allow_merging=True, allow_widening=False, graph_visitor=function_graph_visitor)
    self.function = func
    self._node_to_state = {}
    self.variable_manager = self.kb.variables
    self._max_iterations = max_iterations
    self._node_iterations = defaultdict(int)
    self._analyze()
