Trait/Object

it.unich.scalafix.finite

GraphEquationSystem

Related Docs: object GraphEquationSystem | package finite

Permalink

trait GraphEquationSystem[U, V, E] extends FiniteEquationSystem[U, V]

This is the abstract class for a finite equation system generated by an hyper-graph. Unknowns are nodes of the graph and each hyper-edge has a single target and many possible sources. Given an assignment, each hyper-edge produces a partial values. These values are combined with the upper bound operation.

Linear Supertypes
FiniteEquationSystem[U, V], EquationSystem[U, V], AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. GraphEquationSystem
  2. FiniteEquationSystem
  3. EquationSystem
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract val body: Body[U, V]

    Permalink

    The body of the equation system, i.e., a map Assignment[U,V] => Assignment[U,V].

    The body of the equation system, i.e., a map Assignment[U,V] => Assignment[U,V].

    Definition Classes
    EquationSystem
  2. abstract val bodyWithDependencies: BodyWithDependencies[U, V]

    Permalink

    Given an assignment rho and unknown u, returns the pair (body(rho)(x), uks).

    Given an assignment rho and unknown u, returns the pair (body(rho)(x), uks). uks is a set of unknowns with the property that if rho' differs from rho only for variables which are not in uks, then body(rho)(u)==body(rho')(u).

    Definition Classes
    EquationSystem
  3. abstract val dom: Domain[V]

    Permalink

    The domain type-class for the type V.

  4. abstract val edgeAction: EdgeAction[U, V, E]

    Permalink

    A function which, given an assignment and an edge, returns the output value of the edge.

  5. abstract val infl: Relation[U]

    Permalink

    The static relation between an unknown x and the unknowns y it influences.

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

    Definition Classes
    FiniteEquationSystem
  6. abstract val ingoing: (U) ⇒ Iterable[E]

    Permalink

    Maps each unknown to the collection of edges arriving on it.

  7. abstract val initial: InputAssignment[U, V]

    Permalink

    An initial value for starting the analyzer

    An initial value for starting the analyzer

    Definition Classes
    EquationSystem
  8. abstract val inputUnknowns: Set[U]

    Permalink

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

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

    Definition Classes
    FiniteEquationSystemEquationSystem
  9. abstract val outgoing: (U) ⇒ Iterable[E]

    Permalink

    Maps each unknown to the collection of edges departing from it.

  10. abstract val sources: (E) ⇒ Iterable[U]

    Permalink

    Maps each edge to its source unknowns.

  11. abstract val target: (E) ⇒ U

    Permalink

    Maps each edge to its target unknown.

  12. abstract val unknowns: Iterable[U]

    Permalink

    The collection of all unknowns.

    The collection of all unknowns.

    Definition Classes
    FiniteEquationSystem
  13. abstract def withBaseAssignment(init: PartialFunction[U, V])(implicit magma: Magma[V]): FiniteEquationSystem[U, V]

    Permalink

    Combine a base assignment with the equation system.

    Combine a base assignment with the equation system. The type V should be endowed with a magma.

    init

    the assignment to add to the equation system

    Definition Classes
    FiniteEquationSystemEquationSystem
  14. abstract def withBoxes(boxes: BoxAssignment[U, V]): FiniteEquationSystem[U, V]

    Permalink

    Add boxes to the equation system

    Add boxes to the equation system

    boxes

    a box assignment

    Definition Classes
    FiniteEquationSystemEquationSystem
  15. abstract def withLocalizedBoxes(boxes: BoxAssignment[U, V], ordering: Ordering[U]): GraphEquationSystem[U, V, E]

    Permalink

    Add boxes to the equation system in a localized way.

    Add boxes to the equation system in a localized way.

    boxes

    new boxes to add.

    ordering

    an order on unknown used to decide which edges needs to be widened

  16. abstract def withLocalizedWarrowing(widenings: BoxAssignment[U, V], narrowings: BoxAssignment[U, V], ordering: Ordering[U]): FiniteEquationSystem[U, V]

    Permalink

    Add warrowing to the equation system in a localized way.

    Add warrowing to the equation system in a localized way. Localized warrowing requires a different procedure than standard localized widenings. Moreover, it is not entirely clear whether this works as intended or not.

    widenings

    a widening assignment

    narrowings

    a narrowing assignment

  17. abstract def withTracer(t: EquationSystemTracer[U, V]): GraphEquationSystem[U, V, E]

    Permalink

    Add a tracer to the equation system.

    Add a tracer to the equation system. The tracer contains call-backs to be invoked during body evaluation.

    t

    the tracer

    Definition Classes
    GraphEquationSystemFiniteEquationSystemEquationSystem

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  14. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  15. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  16. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from FiniteEquationSystem[U, V]

Inherited from EquationSystem[U, V]

Inherited from AnyRef

Inherited from Any

Ungrouped