Package

com.cra.figaro.algorithm

structured

Permalink

package structured

Visibility
  1. Public
  2. All

Type Members

  1. class ApplyComponent[Value] extends ProblemComponent[Value]

    Permalink
  2. class AtomicComponent[Value] extends ProblemComponent[Value]

    Permalink

    Problem components for atomic elements.

  3. sealed abstract class Bounds extends AnyRef

    Permalink
  4. class ChainComponent[ParentValue, Value] extends ExpandableComponent[ParentValue, Value]

    Permalink

    A problem component created for a chain element.

  5. class ComponentCollection extends AnyRef

    Permalink

    A collection of problem components.

    A collection of problem components. This data structure manages all the components being used in the solution of a top-level problem and its nested subproblems. Every element exists in at most one component. To create a new component for an element, you need to say what problem it belongs to.

    This class is intended for models that do not use chain function memoization recursively; for this purpose, use RecursiveComponentCollection.

  6. abstract class ExpandableComponent[ParentValue, Value] extends ProblemComponent[Value]

    Permalink

    A problem component that provides an expand method.

  7. class IncrementingCollection extends ComponentCollection

    Permalink

    Component collections for models that recursively use chain function memoization.

    Component collections for models that recursively use chain function memoization. This works by incrementing depth at every expansion. Thus, if the maximum depth of expansion is d, then there can be up to d copies of each expansion.

  8. class MakeArrayComponent[Value] extends ExpandableComponent[Int, FixedSizeArray[Value]]

    Permalink

    A problem component for a MakeArray element.

  9. class MinimalIncrementingCollection extends ComponentCollection

    Permalink

    Component collections for models that recursively use chain function memoization.

    Component collections for models that recursively use chain function memoization. When expanding a subproblem, this works by computing the least depth that does not create a cycle in the graph of subproblems.

    This maintains the invariant that if an expansion exists at depth d > 1, then an expansion also exists at depth d - 1. Furthermore, the expansion at depth d - 1 directly or indirectly uses the expansion at depth d. This invariant makes it possible to find the least depth that does not create a cycle by performing exponential search.

  10. class NestedProblem[T] extends Problem

    Permalink
  11. class Problem extends AnyRef

    Permalink

    A Problem defines an inference problem to be solved.

    A Problem defines an inference problem to be solved. It includes a set of components directly contained in the problem. These components might have nested subproblems. It also refers to global components that are outside of this problem. The targets are elements that appear in this problem that are visible outside. They might be newly defined in this problem or they might be defined previously, but either way, they should not be eliminated.

  12. class ProblemComponent[Value] extends AnyRef

    Permalink
  13. class SelectiveIncrementingCollection extends ComponentCollection

    Permalink

    Component collections for models that recursively use chain function memoization.

    Component collections for models that recursively use chain function memoization. This works by incrementing depth at as few edges as possible in the graph of expansions. The collection maintains a graph of expansions that can use each other without incrementing the depth of recurison. Expansions are greedily added to this graph until one creates a cycle. Such an edge is instead recorded as an edge along which we must increment the depth when expanding.

Value Members

  1. object ComponentHash

    Permalink

    To speed up factor creation time, it's necessary to override the hashcode of component collections.

  2. object Lower extends Bounds with Product with Serializable

    Permalink
  3. object Range

    Permalink
  4. object Upper extends Bounds with Product with Serializable

    Permalink
  5. package algorithm

    Permalink
  6. package solver

    Permalink
  7. package strategy

    Permalink

Ungrouped