BaseGraphEquationSystem

abstract class BaseGraphEquationSystem[U, V, E, EQS <: BaseGraphEquationSystem[U, V, E, EQS]] extends BaseFiniteEquationSystem[U, V, EQS] with GraphEquationSystem[U, V, E, EQS] with Cloneable

The base abstract implementation for graph-based equation systems.

Type parameters:
E

type of edges.

EQS

the type of the equation system. Operations returning a new equation system generally return EQS.

U

the type for the unknowns, which are also the nodes of the graph.

V

the type for the values assumed by the unknowns, which is also the type of the values generated by an edge trough its edge action.

Source:
GraphEquationSystem.scala
trait GraphEquationSystem[U, V, E, EQS]
class BaseFiniteEquationSystem[U, V, EQS]
trait FiniteEquationSystem[U, V, EQS]
class BaseEquationSystem[U, V, EQS]
trait Cloneable
trait EquationSystem[U, V, EQS]
class Object
trait Matchable
class Any

Value members

Abstract methods

protected def initialGraph: GraphBody[U, V, E]

The initial graph of the equation system. Depending on the presence of localized combos, the initial graph is manipulated in order to obtain the real graph.

The initial graph of the equation system. Depending on the presence of localized combos, the initial graph is manipulated in order to obtain the real graph.

Source:
GraphEquationSystem.scala

Concrete methods

override def bodyWithDependencies: U => V

Returns the body with dependencies of the equations system.

Returns the body with dependencies of the equations system.

Definition Classes
Source:
GraphEquationSystem.scala
override protected def clone(): EQS
override def graph: GraphBody[U, V, E]

Returns the graph of this equation system.

Returns the graph of this equation system.

Note:

The graph is generated starting from the initial graph of the equation system, eventually adding localized combos as requested by the user.

Definition Classes
Source:
GraphEquationSystem.scala
override protected def initialBody: U => V

The initial body of the equation system. Depending of the presence of combos, base assignments or tracers, the initial body is manipulated in order to obtain the real body of the equation system.

The initial body of the equation system. Depending of the presence of combos, base assignments or tracers, the initial body is manipulated in order to obtain the real body of the equation system.

For graph-based equation system, the initial body is computed by the graph.

Definition Classes
Source:
GraphEquationSystem.scala
override def initialInfl: Relation[U, U]

The initial influence relation of the equation system. Depending of the presence of combos, the initial relaton is manipulated in order to obtain the real influence relation of the equation system.

The initial influence relation of the equation system. Depending of the presence of combos, the initial relaton is manipulated in order to obtain the real influence relation of the equation system.

For graph-based equation system, the initial influence relation is computed by the graph.

Definition Classes
Source:
GraphEquationSystem.scala
override def unknowns: Iterable[U]
override def withLocalizedCombos(combos: ComboAssignment[U, V], ordering: Ordering[U]): EQS

Returns the equation system modified with the specified localized combo assignment.

Returns the equation system modified with the specified localized combo assignment.

Definition Classes
Source:
GraphEquationSystem.scala
override def withLocalizedWarrowing(widenings: ComboAssignment[U, V], narrowings: ComboAssignment[U, V], ordering: Ordering[U])(using dom: Domain[V]): EQS

Returns the equation system modified with the specified combination of localized widening and narrowing (aka localized warrowing).

Returns the equation system modified with the specified combination of localized widening and narrowing (aka localized warrowing).

Definition Classes
Source:
GraphEquationSystem.scala

Inherited methods

override def body: U => V

Returns the body of this equation system.

Returns the body of this equation system.

Note:

The body is generated starting from the initial body of the equation system, adding combos, base assignment and tracer according to the requests of the user.

Definition Classes
Inherited from:
BaseEquationSystem
Source:
EquationSystem.scala
override def getMutableAssignment(rho: U => V): MutableAssignment[U, V]

Returns a mutable assignment based on the provided initial assignment.

Returns a mutable assignment based on the provided initial assignment.

Note:

Returns the default mutable assignment assignments.MapBasedMutableAssignment

Definition Classes
Inherited from:
BaseEquationSystem
Source:
EquationSystem.scala
override def infl: Relation[U, U]

The static relation between an unknown x and the unknowns y it influences. If infl(x) does not contain y, it means that apply(rho)(y) \== apply(rho')(y), when rho' = rho[x / eqs(rho)(x)].

The static relation between an unknown x and the unknowns y it influences. If infl(x) does not contain y, it means that apply(rho)(y) \== apply(rho')(y), when rho' = rho[x / eqs(rho)(x)].

Definition Classes
Inherited from:
BaseFiniteEquationSystem
Source:
FiniteEquationSystem.scala

The unknowns which may be considered the input to this equation system.

The unknowns which may be considered the input to this equation system.

Note:

Although theoretically it would be more correct to replace this type with Set[U], this would make data reuse harder.

Inherited from:
FiniteEquationSystem
Source:
FiniteEquationSystem.scala
override def withBaseAssignment(baseAssignment: PartialFunction[U, V], op: (V, V) => V): EQS

Returns the equation system modified with the specified base assignment.

Returns the equation system modified with the specified base assignment.

Definition Classes
Inherited from:
BaseEquationSystem
Source:
EquationSystem.scala
override def withCombos(combos: ComboAssignment[U, V]): EQS

Returns the equation system modified with the specified combo assignment.

Returns the equation system modified with the specified combo assignment.

Definition Classes
Inherited from:
BaseEquationSystem
Source:
EquationSystem.scala
override def withTracer(tracer: EquationSystemTracer[U, V]): EQS

Returns the equation system with an additional tracer. The tracer contains callbacks which are invoked during body evaluation.

Returns the equation system with an additional tracer. The tracer contains callbacks which are invoked during body evaluation.

Definition Classes
Inherited from:
BaseEquationSystem
Source:
EquationSystem.scala

Concrete fields

An optional specification of the localized combos we want to apply to the equation system.

An optional specification of the localized combos we want to apply to the equation system.

Source:
GraphEquationSystem.scala

An optional specification of localized warrowing we want to apply to the equation system.

An optional specification of localized warrowing we want to apply to the equation system.

Source:
GraphEquationSystem.scala

Inherited fields

protected var optBaseAssignment: Option[(PartialFunction[U, V], (V, V) => V)]

An optional specification for a base assignment we want to add to the equation system.

An optional specification for a base assignment we want to add to the equation system.

Inherited from:
BaseEquationSystem
Source:
EquationSystem.scala
protected var optCombos: Option[ComboAssignment[U, V]]

An optional assignment of combos to the unknowns.

An optional assignment of combos to the unknowns.

Inherited from:
BaseEquationSystem
Source:
EquationSystem.scala
protected var optTracer: Option[EquationSystemTracer[U, V]]

An optional tracer for monitoring the execution of the body.

An optional tracer for monitoring the execution of the body.

Inherited from:
BaseEquationSystem
Source:
EquationSystem.scala