PriorityWorkListSolver

A local fixpoint solver based on a worklist with priorities.

class Object
trait Matchable
class Any

Type members

Classlikes

class DynamicPriority[U] extends Ordering[U]

This is an dynamic ordering on unknowns: every time an unknown appears, it gets assigned a lower priority than previous one (i.e., it comes earlier in the ordering). This is the default ordering for PriorityWorkListSolver when an explicit one is not provided.

This is an dynamic ordering on unknowns: every time an unknown appears, it gets assigned a lower priority than previous one (i.e., it comes earlier in the ordering). This is the default ordering for PriorityWorkListSolver when an explicit one is not provided.

Value members

Concrete methods

def apply[U, V](eqs: EquationSystem[U, V])(wanted: Iterable[U], start: InputAssignment[U, V], ordering: Ordering[U], tracer: FixpointSolverTracer[U, V]): IOAssignment[U, V]

Locally solve a finite equation system.

Locally 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 a dynamical ordering induced by evaluation)

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)

wanted

the unknowns we want to solve

Returns:

the solution of the equation system