c

# AtomicNormal 

#### class AtomicNormal extends Element[Double] with NormalProposer

A normal distribution in which the mean and variance are constants.

Linear Supertypes
NormalProposer, Atomic[Double], HasDensity[Double], Element[Double], AnyRef, Any
Ordering
1. Alphabetic
2. By Inheritance
Inherited
1. AtomicNormal
2. NormalProposer
3. Atomic
4. HasDensity
5. Element
6. AnyRef
7. Any
1. Hide All
2. Show All
Visibility
1. Public
2. All

### Instance Constructors

1. new AtomicNormal(name: Name[Double], mean: Double, variance: Double, collection: ElementCollection)

### Type Members

1. type Condition = (Double) ⇒ Boolean

The type of conditions on the element.

The type of conditions on the element. A condition is a function from a value to a Boolean.

Definition Classes
Element
2. type Constraint = (Double) ⇒ Double

The type of soft constraints on the element.

The type of soft constraints on the element. A constraint is a function from a value to a Double.

Definition Classes
Element
3. type Randomness = Double

The type of randomness content of the element.

The type of randomness content of the element.

Definition Classes
NormalProposerElement
4. type Value = Double

The type of values over which the element is defined.

The type of values over which the element is defined.

Definition Classes
Element

### Value Members

1. final def !=(arg0: Any): Boolean
Definition Classes
AnyRef → Any
2. def !==(that: Element[Value])(implicit universe: Universe): Neq[Value]

The element that tests inequality of this element with another element.

The element that tests inequality of this element with another element.

Definition Classes
Element
3. final def ##(): Int
Definition Classes
AnyRef → Any
4. final def ==(arg0: Any): Boolean
Definition Classes
AnyRef → Any
5. def ===(that: Value)(implicit universe: Universe): Apply1[Double, Boolean]

The element that tests whether the value of this element is equal to a particular value.

The element that tests whether the value of this element is equal to a particular value.

Definition Classes
Element
6. def ===(that: Element[Value])(implicit universe: Universe): Eq[Value]

The element that tests equality of this element with another element.

The element that tests equality of this element with another element.

Definition Classes
Element
7. def activate(): Unit

Activate the element in its universe.

Activate the element in its universe.

Definition Classes
Element
8. var active: Boolean

Flag indicating whether the element is currently active in its universe.

Flag indicating whether the element is currently active in its universe.

Definition Classes
Element
9. def addCondition(condition: Condition, contingency: Contingency = List()): Unit

Add the given condition to the existing conditions of the element.

Add the given condition to the existing conditions of the element. By default, the contingency is empty.

Definition Classes
Element
10. def addConstraint(constraint: Constraint, contingency: Contingency = List()): Unit

Add a contingent constraint to the element.

Add a contingent constraint to the element. By default, the contingency is empty.

Definition Classes
Element
11. def addLogConstraint(constraint: Constraint, contingency: Contingency = List()): Unit

Add a log contingent constraint to the element.

Add a log contingent constraint to the element. By default, the contingency is empty.

Definition Classes
Element

Add a pragma to the element.

Add a pragma to the element.

Definition Classes
Element
13. def allConditions: List[(Condition, Contingency)]

All the conditions defined on this element.

All the conditions defined on this element.

Definition Classes
Element
14. def allConstraints: List[(Constraint, Contingency)]

The current soft constraints on the element.

The current soft constraints on the element.

Definition Classes
Element
15. def args: List[Element[_]]

Returns an empty list.

Returns an empty list.

Definition Classes
AtomicElement
16. final def asInstanceOf[T0]: T0
Definition Classes
Any
17. def clearContext(): Unit

Clears all the temporary elements associated with this element (all elements created in it's context).

Clears all the temporary elements associated with this element (all elements created in it's context).

Definition Classes
Element
18. def clone(): AnyRef
Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( ... )
19. val collection
Definition Classes
Element
20. def condition(value: Any): Boolean

Tests whether all the element's contingent conditions are satisfied for the given value.

Tests whether all the element's contingent conditions are satisfied for the given value.

Definition Classes
Element
21. def conditionSatisfied: Boolean

Determines whether the condition on the element is satisfied by the current value.

Determines whether the condition on the element is satisfied by the current value.

Definition Classes
Element
22. def constraint(value: Any): Double

Gets the result of all the element's contingent constraints for the given value.

Gets the result of all the element's contingent constraints for the given value.

Definition Classes
Element
23. def constraintValue: Double

Determines the value of the constraint on the element applied to the current value.

Determines the value of the constraint on the element applied to the current value.

Definition Classes
Element
24. def context: List[Element[_]]

The elements on which the existence of this element depends.

The elements on which the existence of this element depends.

Definition Classes
Element
25. def deactivate(): Unit

Deactivate the element in its universe.

Deactivate the element in its universe.

Definition Classes
Element
26. def density(d: Double): Double

Density of a value.

Density of a value.

Definition Classes
AtomicNormalHasDensity
27. def directContextContents: Set[Element[_]]

Returns the set of elements directly created in the context of this element.

Returns the set of elements directly created in the context of this element.

Definition Classes
Element
28. def elementsIAmContingentOn: Set[Element[_]]

Returns the elements that this element is contingent on.

Returns the elements that this element is contingent on. These are elements that are required to have a certain value for a condition or constraint to be relevant to this element. The contingency is required because conditions and constraints can be applied to references that are uncertain. Every possible element that could be pointed to by a reference must be given the condition or constraint, but the condition or constraint only applies if the elements earlier in the reference have the required value.

Figaro takes care of handling all this under the hood. However, some algorithms may need to know which elements an element is contingent on. For example, sampling algorithms may need to sample those other elements first. This method is supplied to support this use case.

Definition Classes
Element
29. final def eq(arg0: AnyRef): Boolean
Definition Classes
AnyRef
30. def equals(arg0: Any): Boolean
Definition Classes
AnyRef → Any
31. def finalize(): Unit
Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( classOf[java.lang.Throwable] )
32. def flatMap[U](fn: (Value) ⇒ Element[U])(implicit name: Name[U], collection: ElementCollection): Element[U]
Definition Classes
Element
33. final def generate(): Unit

First generate the randomness, then generate the value given the randomness.

First generate the randomness, then generate the value given the randomness. Store the results in randomness and value.

Definition Classes
Element
34. def generateRandomness(): Double

Generate the randomness content.

Generate the randomness content.

Definition Classes
AtomicNormalElement
35. def generateValue(rand: Randomness): Double

A strictly monotone differentiable function defined on (`lower`, `upper`).

A strictly monotone differentiable function defined on (`lower`, `upper`). Defaults to the identity function.

Definition Classes
AtomicNormalNormalProposerElement
36. def generateValueDerivative(rand: Randomness): Double

The absolute value of the derivative of `generateValue` with respect to the randomness given.

The absolute value of the derivative of `generateValue` with respect to the randomness given. This is needed to compute a proposal density over the transformed randomness. Defaults to 1.0, corresponding to the case where `generateValue` is the identity function.

Definition Classes
AtomicNormalNormalProposer
37. final def getClass(): Class[_]
Definition Classes
AnyRef → Any
38. val hashCode: Int
Definition Classes
Element
39. def intervene(v: Value): Unit
Definition Classes
Element
40. def isCachable(): Boolean

The cacheability of the element.

The cacheability of the element. Chains create caches of their parent values, and it is useful to know when these values can be effectively cached and reused. In general, continuous distributions are not cacheable.

Definition Classes
Element
41. final def isInstanceOf[T0]: Boolean
Definition Classes
Any
42. def isTemporary: Boolean

Returns true if this element is temporary, that is, was created in the context of another element.

Returns true if this element is temporary, that is, was created in the context of another element.

Definition Classes
Element
43. def lower: Double

Exclusive lower bound of the range of the randomness of this element.

Exclusive lower bound of the range of the randomness of this element. Defaults to -Infinity. Must be strictly less than the upper bound.

Definition Classes
NormalProposer
44. def map[U](fn: (Value) ⇒ U)(implicit name: Name[U], collection: ElementCollection): Element[U]
Definition Classes
Element
45. val mean: Double
46. val name: Name[Double]
Definition Classes
Element
47. final def ne(arg0: AnyRef): Boolean
Definition Classes
AnyRef
48. def nextRandomness(oldRandomness: Randomness): (Randomness, Double, Double)

Generate the next randomness given the current randomness.

Generate the next randomness given the current randomness. Returns three values: The next randomness, the Metropolis-Hastings proposal probability ratio, which is:

P(new -> old) / P(old -> new)

and the model probability ratio, which is:

P(new) / P(old)

By default, this implementation proposes a normally distributed randomness from the previous randomness, truncated to be within the appropriate range. The probability ratios returned are associated with the values of this element rather than the randomness. This is for the purpose of simulated annealing, since the most likely randomness is not necessarily the most likely value, depending on the form of the generateValue function.

One can override this to only use normal proposals in certain special cases.

Definition Classes
NormalProposerHasDensityElement
49. final def normalNextRandomness(oldRandomness: Randomness): (Randomness, Double, Double)

Computes the normal proposal for nextRandomness.

Computes the normal proposal for nextRandomness. This is separated from the nextRandomness so that subclasses can choose when to use normal proposals.

Attributes
protected
Definition Classes
NormalProposer
Annotations
@tailrec()
50. final def notify(): Unit
Definition Classes
AnyRef
51. final def notifyAll(): Unit
Definition Classes
AnyRef
52. def observe(observation: Value): Unit

Condition the element by observing a particular value.

Condition the element by observing a particular value. Propagates the effect to dependent elements and ensures that no other value for the element can be generated.

Definition Classes
Element
53. def pragmas: List[Pragma[Value]]

The pragmas attached to the element.

The pragmas attached to the element.

Definition Classes
Element
54. def proposalProb(oldRandomness: Double, newRandomness: Double): Double

Computes the proposal probability density in one direction.

Computes the proposal probability density in one direction. Both values should be in the interval (lower, upper).

oldRandomness

The previous randomness.

newRandomness

The newly proposed randomness.

returns

The probability density associated with the transition from `generateValue(oldRandomness)` to `generateValue(newRandomness)`. This is a density over the corresponding values (as opposed to randomnesses).

Attributes
protected
Definition Classes
NormalProposer
55. def proposalScale: Double

The scale of the normally distributed proposal.

The scale of the normally distributed proposal. This corresponds to the standard deviation of the proposal before truncation. If the randomness has finite variance, this should be less than or equal to its standard deviation. A good place to start is e.g. 20% of the standard deviation.

Definition Classes
AtomicNormalNormalProposer
56. var randomness

The current randomness content of the element.

The current randomness content of the element.

Definition Classes
Element
57. def removeConditions(contingency: Contingency = List()): Unit

Remove all conditions associated with the given contingency.

Remove all conditions associated with the given contingency. By default, the contingency is empty.

Definition Classes
Element
58. def removeConstraint(constraint: Constraint, contingency: Contingency = List()): Unit
Attributes
protected
Definition Classes
Element
59. def removeConstraints(contingency: Contingency = List()): Unit

Remove all constraints associated with the given contingency.

Remove all constraints associated with the given contingency. By default, the contingency is empty.

Definition Classes
Element
60. def removePragma(pragma: Pragma[Value]): Unit

Remove a pragma from the element.

Remove a pragma from the element.

Definition Classes
Element
61. def score(oldValue: Value, newValue: Value): Double

Compute the constraints on the new value divided by the constraints on the old value.

Compute the constraints on the new value divided by the constraints on the old value.

Definition Classes
Element
62. def set(newValue: Value): Unit

Set the value of this element and propagate the effects to elements that depend on it without changing their randomness.

Set the value of this element and propagate the effects to elements that depend on it without changing their randomness. Also disallows the value of the element to change until unobserve or unset is called.

Definition Classes
Element
63. def setCondition(newCondition: Condition, contingency: Contingency = List()): Unit

Set the condition associated with the contingency.

Set the condition associated with the contingency. Removes previous conditions associated with the contingency. By default, the contingency is empty.

Definition Classes
Element
64. def setConstraint(newConstraint: Constraint, contingency: Contingency = List()): Unit

Set the constraint associated with the contingency.

Set the constraint associated with the contingency. Removes previous constraints associated with the contingency. By default, the contingency is empty.

Definition Classes
Element
65. def setLogConstraint(newConstraint: Constraint, contingency: Contingency = List()): Unit

Set the log constraint associated with the contingency.

Set the log constraint associated with the contingency. Removes previous constraints associated with the contingency. By default, the contingency is empty.

Definition Classes
Element
66. def setRandomness(newRandomness: Randomness): Unit

Set the randomness of this element.

Set the randomness of this element.

Will generate its value using the new randomness and propagate the effects to elements that depend on it without changing their randomness.

Definition Classes
Element
67. lazy val standardDeviation: Double
68. final def synchronized[T0](arg0: ⇒ T0): T0
Definition Classes
AnyRef
69. def toNameString: String

A string that is the element's name, if it has a non-empty one, otherwise the result of the element's toString.

A string that is the element's name, if it has a non-empty one, otherwise the result of the element's toString.

Definition Classes
Element
70. def toString(): String
Definition Classes
AtomicNormal → AnyRef → Any
71. def unintervene(): Unit
Definition Classes
Element
72. val universe

The universe in which the element is defined.

The universe in which the element is defined.

Definition Classes
Element
73. def unobserve(): Unit

Removes conditions on the element and allows different values of the element to be generated.

Removes conditions on the element and allows different values of the element to be generated.

Definition Classes
Element
74. def unset(): Unit

Allows different values of the element to be generated.

Allows different values of the element to be generated.

Definition Classes
Element
75. def upper: Double

Exclusive upper bound of the range of the randomness of this element.

Exclusive upper bound of the range of the randomness of this element. Defaults to Infinity. Must be strictly greater than the lower bound.

Definition Classes
NormalProposer
76. var value

The current value of the element.

The current value of the element.

Definition Classes
Element
77. val variance: Double
78. final def wait(): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
79. final def wait(arg0: Long, arg1: Int): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
80. final def wait(arg0: Long): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )