SimpleGraphEquationSystem

case class SimpleGraphEquationSystem[U, V, E](unknowns: Iterable[U], inputUnknowns: Set[U], edgeAction: (U, V) => E, sources: E => Iterable[U], target: E => U, outgoing: U => Iterable[E], ingoing: U => Iterable[E], initial: InputAssignment[U, V], tracer: Option[EquationSystemTracer[U, V]])(implicit dom: Domain[V]) extends EquationSystemBase[U, V] with GraphEquationSystem[U, V, E]

A simple standard implementation of FiniteEquationSystem. All fields must be provided explicitly by the user with the exception of body, bodyWithDependencies and infl which are computed by the graph.

trait Serializable
trait Product
trait Equals
trait GraphEquationSystem[U, V, E]
class EquationSystemBase[U, V]
trait EquationSystem[U, V]
class Object
trait Matchable
class Any

Value members

Concrete methods

def withBaseAssignment(init: PartialFunction[U, V])(implicit magma: Magma[V]): FiniteEquationSystem[U, V]
def withLocalizedBoxes(boxes: BoxAssignment[U, V], ordering: Ordering[U]): GraphEquationSystem[U, V, E]
def withLocalizedWarrowing(widenings: BoxAssignment[U, V], narrowings: BoxAssignment[U, V], ordering: Ordering[U]): FiniteEquationSystem[U, V]

Inherited methods

protected def bodyWithBaseAssignment(init: PartialFunction[U, V], comb: (V, V) => V): U => V

Returns a new body, in which the init assignment is combined with the result of body evaluation trough the use of the comb combiner.

Returns a new body, in which the init assignment is combined with the result of body evaluation trough the use of the comb combiner.

Inherited from:
EquationSystemBase
protected def bodyWithBoxAssignment(boxes: BoxAssignment[U, V]): U => V

Returns a new body with boxes added to the evaluation. If tracer is defined, the boxEvaluation callback is invoked during evaluation.

Returns a new body with boxes added to the evaluation. If tracer is defined, the boxEvaluation callback is invoked during evaluation.

Inherited from:
EquationSystemBase
protected def bodyWithTracer(t: EquationSystemTracer[U, V]): U => V

Returns a new body which calls the current tracer before and after evaluation.

Returns a new body which calls the current tracer before and after evaluation.

Value parameters:
t

the tracer to be called by the new body

Inherited from:
EquationSystemBase
def productElementNames: Iterator[String]
Inherited from:
Product
def productIterator: Iterator[Any]
Inherited from:
Product

Concrete fields

val body: U => V
override val bodyWithDependencies: U => V
val infl: Relation[U]

Implicits

Implicits

implicit val dom: Domain[V]