t

# FactorProduct 

#### trait FactorProduct extends SimpleBlockSampler

A VE-like procedure that works well on large but highly sparse blocks. For each adjacent factor, this groups the rows of the factor into sub-factors according to possible Markov blanket assignments. Each of these sub-factors is accumulated into a factor over factors, which essentially maps the Markov blanket of the original factor to a conditional distribution over the block. This does not store any new information, but rather takes the information in each factor and stores it in an easier to use format. This trait is the reason why we currently choose not to place a Chain's parent and the Chain itself in the same block, since we cannot efficiently compute the product of the sub-factors of the adjacent ConditionalSelector factors. In other cases we can make use of a priority queue to compute the product in an efficient order. For ConditionalSelectors there is no way to keep the intermediate factors sparse, and computing this product takes exponential time.

Linear Supertypes
Ordering
1. Alphabetic
2. By Inheritance
Inherited
1. FactorProduct
2. SimpleBlockSampler
3. BlockSampler
4. AnyRef
5. Any
1. Hide All
2. Show All
Visibility
1. Public
2. All

### Value Members

1. final def !=(arg0: Any): Boolean
Definition Classes
AnyRef → Any
2. final def ##(): Int
Definition Classes
AnyRef → Any
3. final def ==(arg0: Any): Boolean
Definition Classes
AnyRef → Any
Definition Classes
BlockSampler
5. final def asInstanceOf[T0]: T0
Definition Classes
Any
6. val block
Definition Classes
BlockSampler
7. val blockInfo
Definition Classes
BlockSampler
8. def clone(): AnyRef
Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( ... )
9. def computeSamplingFactor(currentSamples: Map[Variable[_], Int]): Factor[Double]
Definition Classes
FactorProductSimpleBlockSampler
10. final def eq(arg0: AnyRef): Boolean
Definition Classes
AnyRef
11. def equals(arg0: Any): Boolean
Definition Classes
AnyRef → Any
12. def finalize(): Unit
Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( classOf[java.lang.Throwable] )
13. final def getClass(): Class[_]
Definition Classes
AnyRef → Any
14. def getSamplingFactor(currentSamples: Map[Variable[_], Int]): Factor[Double]

Get the factor from which to sample this block Returns a non-logarithmic factor

Get the factor from which to sample this block Returns a non-logarithmic factor

Definition Classes
SimpleBlockSamplerBlockSampler
15. def hashCode(): Int
Definition Classes
AnyRef → Any
16. val indexMap: Map[Variable[_], Int]
Definition Classes
SimpleBlockSampler
17. val indices
Definition Classes
SimpleBlockSampler
18. final def isInstanceOf[T0]: Boolean
Definition Classes
Any
19. lazy val mbLookupFactors: List[SparseFactor[SparseFactor[Double]]]
20. final def ne(arg0: AnyRef): Boolean
Definition Classes
AnyRef
21. def normalizeFactor(factor: Factor[Double]): Factor[Double]

Normalize a factor so its weights sum to 1 Takes a logarithmic factor and returns a non-logarithmic factor

Normalize a factor so its weights sum to 1 Takes a logarithmic factor and returns a non-logarithmic factor

Definition Classes
SimpleBlockSampler
22. final def notify(): Unit
Definition Classes
AnyRef
23. final def notifyAll(): Unit
Definition Classes
AnyRef
24. lazy val ord: Ordering[Factor[Double]]
25. def sample(currentSamples: Map[Variable[_], Int]): Unit

Sample this block once

Sample this block once

Definition Classes
BlockSampler
26. def sampleFactor(factor: Factor[Double]): List[Int]

Select a set of indices in the factor according to the weights in the factor Works on a non-logarithmic factor

Select a set of indices in the factor according to the weights in the factor Works on a non-logarithmic factor

Definition Classes
BlockSampler
27. val semiring
Definition Classes
SimpleBlockSampler
28. final def synchronized[T0](arg0: ⇒ T0): T0
Definition Classes
AnyRef
29. def toString(): String
Definition Classes
AnyRef → Any
30. final def wait(): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
31. final def wait(arg0: Long, arg1: Int): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
32. final def wait(arg0: Long): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )