PriorityWorkListSolver

A fixpoint solver based on priority worklists.

Source:
PriorityWorkListSolver.scala
class Object
trait Matchable
class Any

Value members

Concrete methods

def apply[U, V](eqs: FiniteEquationSystem[U, V, _])(start: U => V, ordering: Ordering[U], restart: (V, V) => Boolean, tracer: FixpointSolverTracer[U, V]): MutableAssignment[U, V]

Solve a finite equation system.

Solve a finite equation system.

Type parameters:
U

type of the unknowns for the equation system

V

type of values of the equatiom system

Value parameters:
eqs

equation system to solve

ordering

an ordering which specifies priorities between unknowns (defaults to the depth-first ordering over eqs)

restart

at each iteration this function is applied to the new and old values. If it returns true, the analysis of bigger unknown is restarted from the initial value. (defaults to constant false)

start

assignment to start the evaluation (defaults to eqs.initial)

tracer

a tracer to track the behaviour of the solver (defaults to the empty tracer)

Returns:

the solution of the equation system

Source:
PriorityWorkListSolver.scala