예제 #1
0
 /// <summary>EP message to <c>probabilities</c>.</summary>
 /// <param name="character">Incoming message from <c>character</c>. Must be a proper distribution. If uniform, the result will be uniform.</param>
 /// <param name="probabilities">Incoming message from <c>probabilities</c>.</param>
 /// <param name="result">Modified to contain the outgoing message.</param>
 /// <returns>
 ///   <paramref name="result" />
 /// </returns>
 /// <remarks>
 ///   <para>The outgoing message is a distribution matching the moments of <c>probabilities</c> as the random arguments are varied. The formula is <c>proj[p(probabilities) sum_(character) p(character) factor(character,probabilities)]/p(probabilities)</c>.</para>
 /// </remarks>
 /// <exception cref="ImproperMessageException">
 ///   <paramref name="character" /> is not a proper distribution.</exception>
 public static Dirichlet ProbabilitiesAverageConditional([SkipIfUniform] DiscreteChar character, Dirichlet probabilities, Dirichlet result)
 {
     return(DiscreteFromDirichletOp.ProbsAverageConditional(character.GetInternalDiscrete(), probabilities, result));
 }