FiniteEquationSystem

trait FiniteEquationSystem[U, V, EQS <: FiniteEquationSystem[U, V, EQS]] extends EquationSystem[U, V, EQS]

An equation system with a finite set of unknowns AND static dependencies between them. When computing apply(rho)(x), the result may only depend on rho(y) if y is in inlf(x).

Type parameters:
EQS

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

U

the type for the unknowns

V

the type for the values assumed by the unknowns.

Companion:
object
Source:
FiniteEquationSystem.scala
trait EquationSystem[U, V, EQS]
class Object
trait Matchable
class Any

Value members

Abstract methods

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)].

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.

Source:
FiniteEquationSystem.scala

The collection of all the unknowns.

The collection of all the unknowns.

Note:

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

Source:
FiniteEquationSystem.scala

Inherited methods

def body: U => V

Returns the body of this equation system.

Returns the body of this equation system.

Inherited from:
EquationSystem
Source:
EquationSystem.scala

Returns the body with dependencies of the equations system. Although this might be implemented by scalafix#withDependencies, it is possible to provide an alternative implementation.

Returns the body with dependencies of the equations system. Although this might be implemented by scalafix#withDependencies, it is possible to provide an alternative implementation.

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

Returns a mutable assignment based on the provided initial assignment. Although hash maps are the most obvious implementation of mutable assignment, it is possible to provide an alternative implementation.

Returns a mutable assignment based on the provided initial assignment. Although hash maps are the most obvious implementation of mutable assignment, it is possible to provide an alternative implementation.

Value parameters:
rho

the initial assignment.

Inherited from:
EquationSystem
Source:
EquationSystem.scala
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.

Value parameters:
baseAssignment

a partial assignment of values to unknowns.

op

the operation used to combine the base assignment with the rhs of the body.

See also:

scalafix#addBaseAssignment

Inherited from:
EquationSystem
Source:
EquationSystem.scala
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.

Value parameters:
combos

the combo assignment for the equation system.

See also:

scalafix#addCombos

Inherited from:
EquationSystem
Source:
EquationSystem.scala
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.

Value parameters:
tracer

the tracer.

Inherited from:
EquationSystem
Source:
EquationSystem.scala